A libre lightweight streaming front-end for Android.

Overview

NewPipe

A libre lightweight streaming frontend for Android.


ScreenshotsDescriptionFeaturesInstallation and updatesContributionDonateLicense

WebsiteBlogFAQPress


Read this in other languages: English, Español, 한국어, Soomaali, Português Brasil, 日本語, Română, Türkçe.

WARNING: THIS IS A BETA VERSION, THEREFORE YOU MAY ENCOUNTER BUGS. IF YOU DO, OPEN AN ISSUE VIA OUR GITHUB REPOSITORY.

PUTTING NEWPIPE OR ANY FORK OF IT INTO THE GOOGLE PLAY STORE VIOLATES THEIR TERMS AND CONDITIONS.

Screenshots

Description

NewPipe does not use any Google framework libraries, nor the YouTube API. Websites are only parsed to fetch required info, so this app can be used on devices without Google services installed. Also, you don't need a YouTube account to use NewPipe, which is copylefted libre software.

Features

  • Search videos
  • No Login Required
  • Display general info about videos
  • Watch YouTube videos
  • Listen to YouTube videos
  • Popup mode (floating player)
  • Select streaming player to watch video with
  • Download videos
  • Download audio only
  • Open a video in Kodi
  • Show next/related videos
  • Search YouTube in a specific language
  • Watch/Block age restricted material
  • Display general info about channels
  • Search channels
  • Watch videos from a channel
  • Orbot/Tor support (not yet directly)
  • 1080p/2K/4K support
  • View history
  • Subscribe to channels
  • Search history
  • Search/watch playlists
  • Watch as enqueued playlists
  • Enqueue videos
  • Local playlists
  • Subtitles
  • Livestream support
  • Show comments

Supported Services

NewPipe supports multiple services. Our docs provide more info on how a new service can be added to the app and the extractor. Please get in touch with us if you intend to add a new one. Currently supported services are:

  • YouTube
  • SoundCloud [beta]
  • media.ccc.de [beta]
  • PeerTube instances [beta]
  • Bandcamp [beta]

Installation and updates

You can install NewPipe using one of the following methods:

  1. Add our custom repo to F-Droid and install it from there. The instructions are here: https://newpipe.net/FAQ/tutorials/install-add-fdroid-repo/
  2. Download the APK from Github Releases and install it.
  3. Update via F-Droid. This is the slowest method of getting updates, as F-Droid must recognize changes, build the APK itself, sign it, then push the update to users.
  4. Build a debug APK yourself. This is the fastest way to get new features on your device, but is much more complicated, so we recommend using one of the other methods.

We recommend method 1 for most users. APKs installed using method 1 or 2 are compatible with each other, but not with those installed using method 3. This is due to the same signing key (ours) being used for 1 and 2, but a different signing key (F-Droid's) being used for 3. Building a debug APK using method 4 excludes a key entirely. Signing keys help ensure that a user isn't tricked into installing a malicious update to an app.

In the meanwhile, if you want to switch sources for some reason (e.g. NewPipe's core functionality breaks and F-Droid doesn't have the latest update yet), we recommend following this procedure:

  1. Back up your data via Settings > Content > Export Database so you keep your history, subscriptions, and playlists
  2. Uninstall NewPipe
  3. Download the APK from the new source and install it
  4. Import the data from step 1 via Settings > Content > Import Database

Contribution

Whether you have ideas, translations, design changes, code cleaning, or real heavy code changes, help is always welcome. The more is done the better it gets!

If you'd like to get involved, check our contribution notes.

Translation status

Donate

If you like NewPipe we'd be happy about a donation. You can either send bitcoin or donate via Bountysource or Liberapay. For further info on donating to NewPipe, please visit our website.

Bitcoin Bitcoin QR code 16A9J59ahMRqkLSZjhYj33n9j3fMztFxnh
Liberapay Visit NewPipe at liberapay.com Donate via Liberapay
Bountysource Visit NewPipe at bountysource.com Check out how many bounties you can earn.

Privacy Policy

The NewPipe project aims to provide a private, anonymous experience for using media web services. Therefore, the app does not collect any data without your consent. NewPipe's privacy policy explains in detail what data is sent and stored when you send a crash report, or comment in our blog. You can find the document here.

License

GNU GPLv3 Image

NewPipe is Free Software: You can use, study share and improve it at your will. Specifically you can redistribute and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

Comments
  • Expandable player with unified UI

    Expandable player with unified UI

    Hello! This is my second attempt in making a PR with unified player. I made conclusions from previous situation and this one should be better:

    • less useless code changes like indentation, refactoring of old code, etc
    • no files renaming
    • no removing of old unsused code

    It will help to make a review more productive.

    Youtube screencast of changes

    Here is what I'm introducing:

    • main, background, popup players now connected via one service, one view, one fragment, one activity and one gesture listener
    • main player located in a view with comments, description, etc. So you don't need to open another window for viewing a video. Everything in one place
    • playback position is synchronized between players. Easy to switch from one to another
    • expandable player at the bottom of the screen with cool animation and additional features like long click to open channel of a video, play/pause/close buttons and swipe down to dismiss
    • in-player integrated buttons for opening in browser, playing with Kodi, sharing a video
    • better background playback that can be activated in settings. Allows to automatically switch to audio-only mode when going to background and then switching to video-mode when returning to the app
    • player service will be stopped automatically when user removes the app from recents
    • there are two different bahaviors related to orientation changes: -- with locked global orientation the player will change orientation to landscape and will change it back after onBackPressed() (this method was made previously after @theScrabi requested it) -- with enabled global autorotation the player will listen orientation changes and will change UI to fullscreen or default size
    • previous features like brightness control, open popup player when going to background, action chooser when clicking on a link, etc are working as expected
    • tablet screens are supported too.

    There are some bugs that are not fixed yet. Maybe somebody knows how to fix them because I didn't find a solution yet:

    • R.id.playQueue can not be scrolled. Actions inside it work but not scrolling. This is related to appbar. Intercepting touches didn't help. This is not a major issue because short playlists can be viewed without problems
    • when the player rotates screen orientation programmatically (if global orientation is locked) there is a black flash because of dead activity. It happens not as fast as I want. When orientation rotates with global autorotation enabled there is no such flash.

    All unused code I left on the same place and will clean everything after review. Thanks everyone for answers in #2882

    feature request GUI deep review required player 
    opened by avently 356
  • SponsorBlock Implementation

    SponsorBlock Implementation

    A simplified implementation of SponsorBlock (https://sponsor.ajay.app/about).

    • Users can enable/disable in Settings -> Content
    • Marks segments on the seek bar (with customizable colors)
    • The player will grab sponsor time information from the database when a video loads
    • The player will automatically skip (and optionally notify users) over these sponsors
    • Users can whitelist uploaders from being skipped by holding the SponsorBlock icon in the player

    Closes #2554

    [✓] I carefully read the contribution guidelines and agree to them.

    Test APK: newpipe_0.20.4_sponsorblock.zip

    Previews

    01 02

    feature request player 
    opened by polymorphicshade 255
  • Notification Improvements

    Notification Improvements

    • add MediaStyle notifications for Background and Popup playback
    • reduce excessive notification updating ( / recreating of Notification.Builder object) when playing background / popup media
    • add new buffering state indicator (can be disabled)
    • upscale close icon / downscale replay icon
    • add notification slot settings
    • move notification settings to appearance
    • fix Metadata (song title, artist and album art) sometimes not being set correctly
    • other misc notification fixes

    debug apk (@Stypox 22/09/2020 b4e073cde7d737ea6c6230ecb17f47acac1da0b8): app-debug.zip

    closes #690 closes #1660 closes #2845 closes #1104 closes #1207 closes #3149 closes #3170 closes #1527 closes #1242 closes #1568 closes #1574 closes #1596 closes #2007 closes #3436 closes #3071 closes #4031 closes #4033 closes #2976 closes #2397 closes #228 closes #4286

    feature request 
    opened by cool-student 190
  • Feed order and subscriptions groups

    Feed order and subscriptions groups

    • Sort the items chronologically and by type (live, then upload date in descending order)
    • Let users group their subscriptions
    • Load the feed items in parallel in a background service (like importing works)
    • Show the watching count in live stream items
    • Use Groupie library for easier development of lists

    Demonstration

    demo.gif

    Future improvements (follow ups)

    • Showing the watching state (progress) in the items
    • Migrate other lists to Groupie
    • Make localization changes dynamic
    • [Maybe] Use the new structure YouTube, it uses JSON which is easier to parse and less error prone

    Use RSS feed for YouTube

    Edit: Added in the latest updates.

    One disadvantage that I found is that it doesn't return current live streams, but maybe that's not a huge problem?

    The advantages though are:

    • Very lightweight
    • Easier to parse
    • Available for all (most?) channels

    I'll think about it a little more the next few days. Any suggestion/idea is welcome.

    Loading Strategy Discussion

    There's an issue if we just load everything concurrently: overload on the servers of the services. This can results in errors when doing requests and can put some stress on some services, which we may not want to do it.

    I haven't decided what strategy to take here, maybe limit how many channel per second/time period, custom rates for each service, etc.

    In the current state, a lower concurrent request rate is used. But in the end, we have to balance two things: services servers load and time to load everything.

    Waiting for your opinions on this.


    Related extractor PR TeamNewPipe/NewPipeExtractor#158 Closes #822, #739, #565, #1752, #1725, #1437, #1946, #1919 Related #1448

    feature request deep review required 
    opened by mauriciocolli 142
  • Release 0.20.0

    Release 0.20.0

    Changelogs

    App

    New

    • New application workflow #2907, #4061, #4080, #4130, #4134, #4154, #4155 #4223, #4246, #4272, #4288 (thanks to @avently and all others involved)
      • Unified all three players into one for seamless switching between them - for example, now if you tap on background play while the video is playing in the main or popup player, the stream will start exactly where you left off, not from the beginning. This is true when you go from any of the 3 players to each other.
      • Play video directly in video details screen
      • Option to auto-play video upon opening video details screen (on by default)
      • Swipe down on video to minimize it and continue browsing uninterrupted (in landscape mode, you can swipe down on the title to do the same)
      • Full screen button smartly detects if video is portrait or landscape and behaves accordingly
      • Swipe up on full screen button in landscape mode to scroll down the video details
      • Now you get a neat looking progress bar below the thumbnail in the video details screen if you play it in the background or popup player.
      • Minimize players to background by default when switching app
      • The main player/minimized player retains your browsing history until you close it
    • Use MediaStyle notifications for all players #3178
      • Customizable notification actions
      • Reduce excessive notification updating
      • Fixed metadata (song title, artist and album art) sometimes not being set correctly
      • Fixed notification priority and Bluetooth related bugs
    • Allow basic resizing when using NewPipe in windowed mode / as desktop application #3948

    Improved

    • Show dialog with open options in case of an unsupported URL toast #3826
    • Improve share dialog #4259
    • Improve playlist header layout: align with info items and use always two lines for playlist title when needed #3944
    • Improve search suggestion experience when remote ones can't be fetched #4029
    • Increased default video quality to 720p60 (in-app player) and 480p (pop-up player) #4275
    • Reduce redundancy in "Remember popup size and position" setting #4050
    • Remove timestamp from URL when sharing a live stream #4115
    • Use SubtitlesStream#getUrl instead of getURL #4120
    • Remember last selected media type for downloads. #4038
    • Change "Autoplay" to "Autoqueue" to reduce ambiguity #4252

    Fixed

    • Fixed color of correct / suggested search term #3984
    • Fixed ACRA bug reports not containing stack trace #3982
    • Fixed crash when opening video in local playlist tab on KitKat #3892
    • Fixed auto-queue with no next videos #4349
    • Fixed display name of Kayble language (Taqbaylit) #4066
    • Fixed license pop-up hiding when orientation changes #4127
    • Fixed crash when a file is deleted then redownloaded #3794

    Development

    • Add Checkstyle rule to error when a local variable that could be final isn't final #4138
    • Allow numbers and uppercase letters in app package id #4326
    • Add requirement for contributors to discuss contributions before opening PRs #4126
    • Deprecations and cleanup #3909

    Extractor

    Improved

    • Use initSafeStandardsObjects() #387
    • Remove SubtitlesStream#getURL(). Use SubtitlesStream#getUrl() instead #386

    Fixed

    • Fix crash on empty YouTube comments

    APK for testing

    NewPipe_v0.20.0RC7.zip Corresponding PR: #4333

    opened by TobiGr 131
  • Intermittent, constant buffering

    Intermittent, constant buffering

    Checklist

    • [x] I am using the latest version - 0.21.8
    • [x] I checked, but didn't find any duplicates (open OR closed) of this issue in the repo.
    • [x] I have read the contribution guidelines given at https://github.com/TeamNewPipe/NewPipe/blob/HEAD/.github/CONTRIBUTING.md.
    • [x] This issue contains only one bug. I will open one issue for every bug report I want to file.

    Steps to reproduce the bug

    1. Use the app to watch videos for a while

    I use WebM, if that matters.

    Actual behavior

    Eventually, seemingly at random, a video will decide it wants to endlessly buffer on/off, making it unwatchable.

    When this happens, I can see that download speed consistently stays at around 60 KB/s. Closing out of the video, clearing cached metadata, then returning to that same video makes it work as normal again, varying between 100 B/s to 1-2 MB/s as you would expect.

    Expected behavior

    For one, the app is supposed to buffer at least 25 seconds ahead before playback resumes, as per https://github.com/TeamNewPipe/NewPipe/issues/5516#issuecomment-901382592. Simply enforcing the 25 second minimum probably wouldn't fix the underlying issue, though.

    Screenshots/Screen recordings

    https://user-images.githubusercontent.com/43770697/130306929-8e92318c-5629-47ca-99ef-df0826f8ccae.mp4

    Logs

    Cleaned up to remove screen recorder spam, from the moment I enabled the recorder to the end of the recording. I hope that's enough?

    Click to reveal
    08-20 21:22:16.365  2235  3117 I ActivityManager: START u0 {act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10200000 cmp=org.lineageos.recorder/.RecorderActivity (has extras)} from uid 10031 on display 0
    08-20 21:22:16.447  2235  3161 I ActivityManager: Start proc 10567:org.lineageos.recorder/u0a23 for activity org.lineageos.recorder/.RecorderActivity
    08-20 21:22:16.522 10567 10567 I art     : Starting a blocking GC AddRemoveAppImageSpace
    08-20 21:22:16.526 10567 10567 W System  : ClassLoader referenced unknown path: /system/priv-app/Recorder/lib/arm
    08-20 21:22:16.672 10567 10567 W art     : Before Android 4.1, method android.graphics.PorterDuffColorFilter android.support.graphics.drawable.VectorDrawableCompat.updateTintFilter(android.graphics.PorterDuffColorFilter, android.content.res.ColorStateList, android.graphics.PorterDuff$Mode) would have incorrectly overridden the package-private method in android.graphics.drawable.Drawable
    08-20 21:22:16.899  2235  3117 E WindowManager: App trying to use insecure INPUT_FEATURE_NO_INPUT_CHANNEL flag. Ignoring
    08-20 21:22:16.951 10567 10588 I Adreno-EGL: : QUALCOMM Build: 10/21/15, 369a2ea, I96aee987eb
    08-20 21:22:16.955 10567 10588 I OpenGLRenderer: Initialized EGL, version 1.4
    08-20 21:22:16.955 10567 10588 D OpenGLRenderer: Swap behavior 1
    08-20 21:22:17.166  2235  2258 I ActivityManager: Displayed org.lineageos.recorder/.RecorderActivity: +765ms
    08-20 21:22:18.142  2235  2247 I ActivityManager: START u0 {act=android.content.pm.action.REQUEST_PERMISSIONS pkg=com.android.packageinstaller cmp=com.android.packageinstaller/.permission.ui.GrantPermissionsActivity (has extras)} from uid 10023 on display 0
    08-20 21:22:18.282  2235  3161 E WindowManager: App trying to use insecure INPUT_FEATURE_NO_INPUT_CHANNEL flag. Ignoring
    08-20 21:22:18.370  2235  2258 I ActivityManager: Displayed com.android.packageinstaller/.permission.ui.GrantPermissionsActivity: +203ms
    08-20 21:22:19.148  2235  2333 D WifiStateMachine: updateCapabilities for config:[redacted]false,false
    08-20 21:22:19.292  2235  2847 D VoldConnector: SND -> {18 volume remount_uid 10023 read}
    08-20 21:22:19.295   152   156 D vold    : Remounting 10023 as mode read
    08-20 21:22:19.313   152   156 D vold    : Found matching PID 10567
    08-20 21:22:19.320  2235  2325 D VoldConnector: RCV <- {200 18 Command succeeded}
    08-20 21:22:19.323  2235  2884 D VoldConnector: SND -> {19 volume remount_uid 10023 write}
    08-20 21:22:19.324   152   156 D vold    : Remounting 10023 as mode write
    08-20 21:22:19.336   152   156 D vold    : Found matching PID 10567
    08-20 21:22:19.342  2235  2325 D VoldConnector: RCV <- {200 19 Command succeeded}
    08-20 21:22:19.430 32574 32596 D OpenGLRenderer: endAllActiveAnimators on 0xaa41c100 (RippleDrawable) with handle 0x98cd0fa0
    08-20 21:22:19.619   189   189 W SurfaceFlinger: couldn't log to binary event log: overflow.
    08-20 21:22:19.872  3127  3476 D ProtonLogger_0: 21:22:19-4: Checking if server is not in maintenance
    08-20 21:22:19.880  2235  2584 E WindowManager: App trying to use insecure INPUT_FEATURE_NO_INPUT_CHANNEL flag. Ignoring
    08-20 21:22:19.890  3127  3476 D ProtonLogger_0: 21:22:19-4: [core.network.api.call] --> GET https://api.protonvpn.ch/vpn/servers/[iOKxc3Vwt8UcQksAO9QB3aUdI3wc3j1IL7bA7lFS9Av9I0_Lh7EPjiA46m9YVqzUFpU69_0HojvhmipvXLYi3A==] (auth Beare...)
    08-20 21:22:20.152  2235  2245 I art     : Background partial concurrent mark sweep GC freed 38220(2MB) AllocSpace objects, 4(76KB) LOS objects, 33% free, 14MB/22MB, paused 2.315ms total 218.141ms
    08-20 21:22:20.683  3127 10633 E java.net.CookieManager: Invalid cookie for https://api.protonvpn.ch/vpn/servers/[redacted]: Version=default; expires=Fri, 19 Nov 2021 01:22:20 GMT; path=/; secure
    08-20 21:22:20.686  2394  2407 I art     : Background partial concurrent mark sweep GC freed 233657(13MB) AllocSpace objects, 3(72KB) LOS objects, 39% free, 23MB/38MB, paused 817us total 159.410ms
    08-20 21:22:20.687  3127  3476 D ProtonLogger_0: 21:22:20-4: [core.network.api.call] <-- 200  GET https://api.protonvpn.ch/vpn/servers/[redacted] (792ms)
    08-20 21:22:21.000  2394  2394 I SlideTouchEvent: vel=0.0, MinimumFlingVelocity=150
    08-20 21:22:21.007  2235  2584 I ActivityManager: START u0 {flg=0x10804000 cmp=com.android.systemui/.recents.RecentsActivity} from uid 10037 on display 0
    08-20 21:22:22.223  2235  3157 E ActivityManager: applyOptionsLocked: Unknown animationType=0
    08-20 21:22:22.452  2235  2584 W AppOps  : Finishing op nesting under-run: uid 10076 pkg org.schabi.newpipe code 40 time=0 duration=0 nesting=0
    08-20 21:22:22.551  1740 32071 W AudioFlinger::EffectModule: EffectModule 0xb5204080 destructor called with unreleased interface
    08-20 21:22:22.551  1740  1740 W AudioFlinger::EffectHandle: disconnect Effect handle 0xb577d380 disconnected after thread destruction
    08-20 21:22:22.632  3111 10132 D CacheFactory: initExoPlayerCache: cacheDir = /storage/emulated/0/Android/data/org.schabi.newpipe/cache/exoplayer
    08-20 21:22:22.633  3111 10132 D CacheFactory: initExoPlayerCache: cacheDir = /storage/emulated/0/Android/data/org.schabi.newpipe/cache/exoplayer
    08-20 21:22:22.834  1747  2561 I MediaPlayerService: MediaPlayerService::getOMX
    08-20 21:22:22.843  3111 10692 I OMXClient: MuxOMX ctor
    08-20 21:22:22.844  1744 32395 I OMXMaster: makeComponentInstance(OMX.google.vp9.decoder) in mediacodec process
    08-20 21:22:22.854  3111 10690 I MediaCodec: [OMX.google.vp9.decoder] setting surface generation to 3185717
    08-20 21:22:22.858  1744  1744 W OMXNodeInstance: [6d00081:google.vp9.decoder] component does not support metadata mode; using fallback
    08-20 21:22:22.859  3111 10692 E ACodec  : [OMX.google.vp9.decoder] storeMetaDataInBuffers failed w/ err -1010
    08-20 21:22:22.863  1744  1744 E OMXNodeInstance: setConfig(6d00081:google.vp9.decoder, ConfigPriority(0x6f800002)) ERROR: UnsupportedIndex(0x8000101a)
    08-20 21:22:22.863  3111 10692 I ACodec  : codec does not support config priority (err -1010)
    08-20 21:22:22.863  1744  2449 E OMXNodeInstance: getParameter(6d00081:google.vp9.decoder, ParamVideoAndroidVp8Encoder(0x6f600007)) ERROR: UnsupportedIndex(0x8000101a)
    08-20 21:22:22.887  1747  2248 I MediaPlayerService: MediaPlayerService::getOMX
    08-20 21:22:22.888  3111 10695 I OMXClient: MuxOMX ctor
    08-20 21:22:22.889  1744  1744 I OMXMaster: makeComponentInstance(OMX.google.aac.decoder) in mediacodec process
    08-20 21:22:22.899  1744 32395 E OMXNodeInstance: setConfig(6d00082:google.aac.decoder, ConfigPriority(0x6f800002)) ERROR: Undefined(0x80001001)
    08-20 21:22:22.900  3111 10695 I ACodec  : codec does not support config priority (err -2147483648)
    08-20 21:22:22.915  1744 10696 I SoftAAC2: Reconfiguring decoder: 0->44100 Hz, 0->2 channels
    08-20 21:22:22.946  3111 10132 D AudioTrack: Client defaulted notificationFrames to 3675 for frameCount 11025
    08-20 21:22:24.653  3111 10690 D MediaCodec: [OMX.google.vp9.decoder] setting dataspace on output surface to #104
    08-20 21:22:25.499  1740  1872 D audio_hw_primary: disable_audio_route: usecase(1) reset and update mixer path: low-latency-playback
    08-20 21:22:31.698  3111 10690 D SoftwareRenderer: setting dataspace on output surface to #104
    08-20 21:22:31.975  2235  3165 I MediaFocusControl:  AudioFocus  requestAudioFocus() from uid/pid 10076/3111 clientId=android.media.AudioManager@caee8acorg.schabi.newpipe.player.helper.AudioReactor@f4b7cd req=1 flags=0x0
    08-20 21:22:31.979  1740  1872 D audio_hw_primary: enable_audio_route: usecase(1) apply and update mixer path: low-latency-playback
    08-20 21:22:32.034  2235  2328 W ConnectivityExtension: ConnectivityExt jar file not present
    08-20 21:22:37.110  3111  3123 I art     : Background partial concurrent mark sweep GC freed 107821(7MB) AllocSpace objects, 81(7MB) LOS objects, 20% free, 61MB/77MB, paused 2.822ms total 292.526ms
    08-20 21:22:37.646  2235  2249 I UsageStatsService: User[0] Flushing usage stats to disk
    08-20 21:22:38.138  1747  1747 I MediaPlayerService: MediaPlayerService::getOMX
    08-20 21:22:38.139 10567 10946 I OMXClient: MuxOMX ctor
    08-20 21:22:38.142  1747  2450 I OMXMaster: makeComponentInstance(OMX.qcom.video.encoder.avc) in mediaserver process
    08-20 21:22:38.264  1747  2450 E OMX-VENC: Setting session priority failed
    08-20 21:22:38.265  1747  2450 I OMX-VENC: Component_init : OMX.qcom.video.encoder.avc : return = 0x0
    08-20 21:22:38.269  1747  2561 E OMX-VENC: set_parameter: metamode is valid for input port only
    08-20 21:22:38.269  1747  2561 W OMXNodeInstance: [6d30006:qcom.encoder.avc] component does not support metadata mode; using fallback
    08-20 21:22:38.269 10567 10946 E ACodec  : [OMX.qcom.video.encoder.avc] storeMetaDataInBuffers (output) failed w/ err -1010
    08-20 21:22:38.270 10567 10946 W ACodec  : do not know color format 0x7fa30c04 = 2141391876
    08-20 21:22:38.271 10567 10946 W ACodec  : do not know color format 0x7f000789 = 2130708361
    08-20 21:22:38.275 10567 10946 I ACodec  : setupAVCEncoderParameters with [profile: Baseline] [level: Level41]
    08-20 21:22:38.276 10567 10946 I ACodec  : [OMX.qcom.video.encoder.avc] cannot encode color aspects. Ignoring.
    08-20 21:22:38.277 10567 10946 I ACodec  : [OMX.qcom.video.encoder.avc] cannot encode HDR static metadata. Ignoring.
    08-20 21:22:38.277 10567 10946 I ACodec  : setupVideoEncoder succeeded
    08-20 21:22:38.280 10567 10946 W ACodec  : do not know color format 0x7f000789 = 2130708361
    08-20 21:22:38.285  1747  2450 D GraphicBufferSource: setting dataspace: 0x104
    08-20 21:22:38.285  1747  2561 E OMXNodeInstance: getParameter(6d30006:qcom.encoder.avc, ParamConsumerUsageBits(0x6f800004)) ERROR: UnsupportedIndex(0x8000101a)
    08-20 21:22:38.285  1747  2248 D GraphicBufferSource: requesting color aspects (R:2(Limited), P:1(BT709_5), M:1(BT709_5), T:3(SMPTE170M))
    08-20 21:22:38.438  2235 20037 I DisplayManagerService: Display device added: DisplayDeviceInfo{"hidden:screen-recording": uniqueId="virtual:org.lineageos.recorder,10023,hidden:screen-recording,0", 1080 x 1920, modeId 2, defaultModeId 2, supportedModes [{id=2, width=1080, height=1920, fps=60.0}], colorMode 0, supportedColorModes [0], HdrCapabilities null, density 1, 1.0 x 1.0 dpi, appVsyncOff 0, presDeadline 16666666, touch NONE, rotation 0, type VIRTUAL, state ON, owner org.lineageos.recorder (uid 10023), FLAG_SECURE}
    08-20 21:22:38.454   189   189 I SurfaceFlinger: EGL information:
    08-20 21:22:38.454   189   189 I SurfaceFlinger: vendor    : Android
    08-20 21:22:38.454   189   189 I SurfaceFlinger: version   : 1.4 Android META-EGL
    08-20 21:22:38.454   189   189 I SurfaceFlinger: extensions: EGL_KHR_get_all_proc_addresses EGL_ANDROID_presentation_time EGL_KHR_swap_buffers_with_damage EGL_ANDROID_create_native_client_buffer EGL_ANDROID_front_buffer_auto_refresh EGL_KHR_image EGL_KHR_image_base EGL_KHR_lock_surface EGL_KHR_gl_texture_2D_image EGL_KHR_gl_texture_3D_image EGL_KHR_gl_texture_cubemap_image EGL_KHR_gl_renderbuffer_image EGL_KHR_fence_sync EGL_KHR_create_context EGL_EXT_create_context_robustness EGL_ANDROID_image_native_buffer EGL_KHR_wait_sync EGL_ANDROID_recordable EGL_KHR_partial_update 
    08-20 21:22:38.454   189   189 I SurfaceFlinger: Client API: OpenGL_ES
    08-20 21:22:38.454   189   189 I SurfaceFlinger: EGLSurface: 8-8-8-8, config=0x5
    08-20 21:22:38.478  1747  2562 D GraphicBufferSource: got buffer with new dataSpace #104
    08-20 21:22:38.478 10567 10946 D ACodec  : dataspace changed to 0x10c10000 (R:2(Limited), P:1(BT709_5), M:1(BT709_5), T:3(SMPTE170M)) (R:2(Limited), S:1(BT709), T:3(SMPTE_170M))
    08-20 21:22:38.479  2235  3161 W AppOps  : Finishing op nesting under-run: uid 10023 pkg org.lineageos.recorder code 24 time=0 duration=0 nesting=0
    08-20 21:22:38.484  1747 10951 I OMX-VENC: open Color conv for RGBA888 W: 1080, H: 1920
    08-20 21:22:38.685 10567 10954 I MPEG4Writer: limits: 4294967295/0 bytes/us, bit rate: -1 bps and the estimated moov size 3195 bytes
    08-20 21:22:38.689 10567 10959 I MPEG4Writer: setStartTimestampUs: 312844
    08-20 21:22:38.689 10567 10959 I MPEG4Writer: Earliest track starting time: 312844
    08-20 21:22:38.893  2394  2407 I art     : Background partial concurrent mark sweep GC freed 94886(5MB) AllocSpace objects, 3(696KB) LOS objects, 40% free, 22MB/37MB, paused 824us total 105.167ms
    08-20 21:22:40.272  2235  2333 D WifiStateMachine: updateCapabilities for config:[redacted]false,false
    08-20 21:22:43.285  2235  2333 D WifiStateMachine: updateCapabilities for config:[redacted]false,false
    08-20 21:22:48.465  2235  2328 W ConnectivityExtension: ConnectivityExt jar file not present
    08-20 21:22:48.683  2235  2245 I art     : Background sticky concurrent mark sweep GC freed 105429(6MB) AllocSpace objects, 13(280KB) LOS objects, 31% free, 15MB/22MB, paused 6.871ms total 165.009ms
    08-20 21:22:53.440  2235  2253 E BatteryStatsService: power: Missing API
    08-20 21:22:53.442  2235  2253 E BatteryStatsService: no controller energy info supplied
    08-20 21:22:53.443  2235  2253 E BatteryStatsService: no controller energy info supplied
    08-20 21:22:53.498  2235  2253 E BatteryStatsService: modem info is invalid: ModemActivityInfo{ mTimestamp=0 mSleepTimeMs=0 mIdleTimeMs=0 mTxTimeMs[]=[0, 0, 0, 0, 0] mRxTimeMs=0 mEnergyUsed=0}
    08-20 21:22:55.846  2235  2847 I ActivityManager: Setting hasTopUi=true for pid=2394
    08-20 21:22:55.848  2394  2394 D PhoneStatusBar: disable: < expand ICONS* alerts SYSTEM_INFO* back home recent clock search quick_settings >
    08-20 21:22:57.709  2235  2342 D NotificationSQLiteLog: Pruned event entries: 22
    08-20 21:23:01.369  2235  2333 D WifiStateMachine: updateCapabilities for config:[redacted]false,false
    08-20 21:23:05.038  2235  2328 W ConnectivityExtension: ConnectivityExt jar file not present
    08-20 21:23:07.944  3111  3123 I art     : Background partial concurrent mark sweep GC freed 50063(2043KB) AllocSpace objects, 10(2MB) LOS objects, 21% free, 57MB/73MB, paused 1.827ms total 305.098ms
    08-20 21:23:13.326  2394  2407 I art     : Background partial concurrent mark sweep GC freed 176000(10MB) AllocSpace objects, 1(24KB) LOS objects, 39% free, 23MB/38MB, paused 781us total 152.099ms
    08-20 21:23:16.262  2235  3117 W InputMethodManagerService: Window already focused, ignoring focus gain of: com.android.internal.view.IInputMethodClient$Stub$Proxy@44f0159 attribute=null, token = android.os.BinderProxy@75b4a44
    08-20 21:23:16.274  2235  2247 I ActivityManager: Setting hasTopUi=false for pid=2394
    08-20 21:23:16.277  2394  2394 D PhoneStatusBar: disable: < expand icons* alerts system_info* back home recent clock search quick_settings >
    08-20 21:23:16.492  2235  2333 D WifiStateMachine: updateCapabilities for config:[redacted]false,false
    08-20 21:23:22.524  2235  2333 D WifiStateMachine: updateCapabilities for config:[redacted]false,false
    08-20 21:23:24.168  2235  2328 W ConnectivityExtension: ConnectivityExt jar file not present
    08-20 21:23:24.672  1740  1872 D audio_hw_primary: disable_audio_route: usecase(1) reset and update mixer path: low-latency-playback
    08-20 21:23:24.734  1740  1872 D audio_hw_primary: enable_audio_route: usecase(1) apply and update mixer path: low-latency-playback
    08-20 21:23:24.791  3111 10132 W AudioTrack: getTimestamp() location moved from kernel to server
    08-20 21:23:24.812  3111 10132 W AudioTrack: retrograde timestamp position corrected, -2 = 1238312 - 1238314
    08-20 21:23:39.571  2235  2245 I art     : Background sticky concurrent mark sweep GC freed 116004(6MB) AllocSpace objects, 0(0B) LOS objects, 30% free, 15MB/22MB, paused 2.407ms total 109.439ms
    08-20 21:23:40.566  2235  2328 W ConnectivityExtension: ConnectivityExt jar file not present
    08-20 21:23:40.628  2235  2333 D WifiStateMachine: updateCapabilities for config:[redacted]false,false
    08-20 21:23:41.347  2235  3117 I ActivityManager: Setting hasTopUi=true for pid=2394
    08-20 21:23:41.349  2394  2394 D PhoneStatusBar: disable: < expand ICONS* alerts SYSTEM_INFO* back home recent clock search quick_settings >
    08-20 21:23:42.131  3111  3123 I art     : Background partial concurrent mark sweep GC freed 28593(935KB) AllocSpace objects, 0(0B) LOS objects, 21% free, 57MB/73MB, paused 2.849ms total 615.989ms
    08-20 21:23:48.354  2235  2884 W InputMethodManagerService: Window already focused, ignoring focus gain of: com.android.internal.view.IInputMethodClient$Stub$Proxy@b619ea7 attribute=null, token = android.os.BinderProxy@75b4a44
    08-20 21:23:48.379  2235  2847 I ActivityManager: Setting hasTopUi=false for pid=2394
    08-20 21:23:48.380  2394  2394 D PhoneStatusBar: disable: < expand icons* alerts system_info* back home recent clock search quick_settings >
    08-20 21:23:49.853  2394  2394 I SlideTouchEvent: vel=0.0, MinimumFlingVelocity=150
    08-20 21:23:51.172  3111 11234 W Adreno-EGL: : EGL_BAD_ATTRIBUTE
    08-20 21:23:51.173  3111 10690 I MediaCodec: [OMX.google.vp9.decoder] setting surface generation to 3185718
    08-20 21:23:51.212  2235  3157 W AppOps  : Finishing op nesting under-run: uid 10076 pkg org.schabi.newpipe code 40 time=0 duration=0 nesting=0
    08-20 21:23:51.223  3111  3111 I ExoPlayerImpl: Release 5bf32ae [ExoPlayerLib/2.12.3] [hammerhead, Nexus 5, LGE, 25] [goog.exo.core, goog.exo.mediasession]
    08-20 21:23:51.290  2235  2606 I MediaFocusControl:  AudioFocus  abandonAudioFocus() from uid/pid 10076/3111 clientId=android.media.AudioManager@caee8acorg.schabi.newpipe.player.helper.AudioReactor@f4b7cd
    08-20 21:23:53.499  1740  1872 D audio_hw_primary: disable_audio_route: usecase(1) reset and update mixer path: low-latency-playback
    08-20 21:23:54.214  3111  3123 I art     : Background partial concurrent mark sweep GC freed 35549(1472KB) AllocSpace objects, 24(2MB) LOS objects, 21% free, 57MB/73MB, paused 1.557ms total 314.950ms
    08-20 21:23:54.761  2394  2407 I art     : Background partial concurrent mark sweep GC freed 229537(13MB) AllocSpace objects, 0(0B) LOS objects, 40% free, 23MB/38MB, paused 784us total 153.795ms
    08-20 21:23:56.880  3111  3111 I ExoPlayerImpl: Init 6338f35 [ExoPlayerLib/2.12.3] [hammerhead, Nexus 5, LGE, 25]
    08-20 21:23:56.906  3111  3111 W Player  : Broadcast receiver already unregistered: Receiver not registered: org.schabi.newpipe.player.Player$3@51ae9b1
    08-20 21:23:56.977  2394  2394 D ro      : inflating media notification
    08-20 21:23:57.049  2235  2847 E WindowManager: App trying to use insecure INPUT_FEATURE_NO_INPUT_CHANNEL flag. Ignoring
    08-20 21:23:57.077  3111  3111 I ExoPlayerImpl: Release 6338f35 [ExoPlayerLib/2.12.3] [hammerhead, Nexus 5, LGE, 25] [goog.exo.core, goog.exo.mediasession]
    08-20 21:23:57.080  2235  2884 I MediaFocusControl:  AudioFocus  abandonAudioFocus() from uid/pid 10076/3111 clientId=android.media.AudioManager@caee8acorg.schabi.newpipe.player.helper.AudioReactor@c3f6493
    08-20 21:23:57.088  3111  3111 I ExoPlayerImpl: Init 454ccd0 [ExoPlayerLib/2.12.3] [hammerhead, Nexus 5, LGE, 25]
    08-20 21:23:57.364  3111 11331 D CacheFactory: initExoPlayerCache: cacheDir = /storage/emulated/0/Android/data/org.schabi.newpipe/cache/exoplayer
    08-20 21:23:57.365  3111 11331 D CacheFactory: initExoPlayerCache: cacheDir = /storage/emulated/0/Android/data/org.schabi.newpipe/cache/exoplayer
    08-20 21:23:57.626  1747  2248 I MediaPlayerService: MediaPlayerService::getOMX
    08-20 21:23:57.629  3111 11339 I OMXClient: MuxOMX ctor
    08-20 21:23:57.633  1744 32395 I OMXMaster: makeComponentInstance(OMX.google.vp9.decoder) in mediacodec process
    08-20 21:23:57.644  3111 11338 I MediaCodec: [OMX.google.vp9.decoder] setting surface generation to 3185719
    08-20 21:23:57.654  1744  2622 W OMXNodeInstance: [6d00083:google.vp9.decoder] component does not support metadata mode; using fallback
    08-20 21:23:57.654  3111 11339 E ACodec  : [OMX.google.vp9.decoder] storeMetaDataInBuffers failed w/ err -1010
    08-20 21:23:57.660  1744  2449 E OMXNodeInstance: setConfig(6d00083:google.vp9.decoder, ConfigPriority(0x6f800002)) ERROR: UnsupportedIndex(0x8000101a)
    08-20 21:23:57.660  3111 11339 I ACodec  : codec does not support config priority (err -1010)
    08-20 21:23:57.660  1744  1822 E OMXNodeInstance: getParameter(6d00083:google.vp9.decoder, ParamVideoAndroidVp8Encoder(0x6f600007)) ERROR: UnsupportedIndex(0x8000101a)
    08-20 21:23:57.674  1747  2562 I MediaPlayerService: MediaPlayerService::getOMX
    08-20 21:23:57.675  3111 11343 I OMXClient: MuxOMX ctor
    08-20 21:23:57.676  1744  2622 I OMXMaster: makeComponentInstance(OMX.google.aac.decoder) in mediacodec process
    08-20 21:23:57.706  1744  1744 E OMXNodeInstance: setConfig(6d00084:google.aac.decoder, ConfigPriority(0x6f800002)) ERROR: Undefined(0x80001001)
    08-20 21:23:57.707  3111 11343 I ACodec  : codec does not support config priority (err -2147483648)
    08-20 21:23:57.730  1744 11344 I SoftAAC2: Reconfiguring decoder: 0->44100 Hz, 0->2 channels
    08-20 21:23:57.780  3111 11331 D AudioTrack: Client defaulted notificationFrames to 3675 for frameCount 11025
    08-20 21:23:57.942  3111 11338 D MediaCodec: [OMX.google.vp9.decoder] setting dataspace on output surface to #104
    08-20 21:23:58.684  2235  2328 W ConnectivityExtension: ConnectivityExt jar file not present
    08-20 21:24:00.387  2235  2245 I art     : Background sticky concurrent mark sweep GC freed 101501(5MB) AllocSpace objects, 0(0B) LOS objects, 29% free, 15MB/22MB, paused 2.428ms total 105.996ms
    08-20 21:24:01.753  2235  2333 D WifiStateMachine: updateCapabilities for config:[redacted]false,false
    08-20 21:24:01.924  3111 11338 D SoftwareRenderer: setting dataspace on output surface to #104
    08-20 21:24:01.934  1740  1872 D audio_hw_primary: enable_audio_route: usecase(1) apply and update mixer path: low-latency-playback
    08-20 21:24:01.952  2235  2584 I MediaFocusControl:  AudioFocus  requestAudioFocus() from uid/pid 10076/3111 clientId=android.media.AudioManager@caee8acorg.schabi.newpipe.player.helper.AudioReactor@3a0b52e req=1 flags=0x0
    08-20 21:24:07.788  2235  2333 D WifiStateMachine: updateCapabilities for config:[redacted]false,false
    08-20 21:24:09.323  2235  2328 W ConnectivityExtension: ConnectivityExt jar file not present
    08-20 21:24:09.357  3111  3123 I art     : Background partial concurrent mark sweep GC freed 45579(2MB) AllocSpace objects, 8(280KB) LOS objects, 21% free, 58MB/74MB, paused 1.734ms total 301.279ms
    08-20 21:24:13.251  2394  2394 I SlideTouchEvent: vel=0.0, MinimumFlingVelocity=150
    08-20 21:24:14.116  3111 11376 W Adreno-EGL: : EGL_BAD_ATTRIBUTE
    08-20 21:24:14.118  3111 11338 I MediaCodec: [OMX.google.vp9.decoder] setting surface generation to 3185720
    08-20 21:24:14.132  2235  2845 W AppOps  : Finishing op nesting under-run: uid 10076 pkg org.schabi.newpipe code 40 time=0 duration=0 nesting=0
    08-20 21:24:14.142  3111  3111 I ExoPlayerImpl: Release 454ccd0 [ExoPlayerLib/2.12.3] [hammerhead, Nexus 5, LGE, 25] [goog.exo.core, goog.exo.mediasession]
    08-20 21:24:14.216  2235  3165 I MediaFocusControl:  AudioFocus  abandonAudioFocus() from uid/pid 10076/3111 clientId=android.media.AudioManager@caee8acorg.schabi.newpipe.player.helper.AudioReactor@3a0b52e
    08-20 21:24:14.291  1740  1740 W AudioFlinger::EffectModule: EffectModule 0xb4d17180 destructor called with unreleased interface
    08-20 21:24:14.293  1740  1880 W AudioFlinger::EffectHandle: disconnect Effect handle 0xb527d400 disconnected after thread destruction
    08-20 21:24:14.540  2235  2328 W ConnectivityExtension: ConnectivityExt jar file not present
    08-20 21:24:15.751  2394  2394 I SlideTouchEvent: vel=0.0, MinimumFlingVelocity=150
    08-20 21:24:17.250  1740  1872 D audio_hw_primary: disable_audio_route: usecase(1) reset and update mixer path: low-latency-playback
    08-20 21:24:18.403  2235  2606 I ActivityManager: START u0 {cmp=org.schabi.newpipe/.about.AboutActivity} from uid 10076 on display 0
    08-20 21:24:18.611  2235  3164 E WindowManager: App trying to use insecure INPUT_FEATURE_NO_INPUT_CHANNEL flag. Ignoring
    08-20 21:24:18.922  2235  2258 I ActivityManager: Displayed org.schabi.newpipe/.about.AboutActivity: +477ms
    08-20 21:24:19.008  3111  3144 D OpenGLRenderer: endAllActiveAnimators on 0x8af9ad80 (NavigationMenuItemView) with handle 0x9573b780
    08-20 21:24:19.130  3111  3123 I art     : Background partial concurrent mark sweep GC freed 30338(2MB) AllocSpace objects, 84(4MB) LOS objects, 21% free, 57MB/73MB, paused 1.812ms total 271.552ms
    08-20 21:24:19.854  2235  2333 D WifiStateMachine: updateCapabilities for config:[redacted]false,false
    08-20 21:24:21.348  2394  2394 I SlideTouchEvent: vel=0.0, MinimumFlingVelocity=150
    08-20 21:24:24.072  2235  2884 I ActivityManager: START u0 {cmp=org.schabi.newpipe/.settings.SettingsActivity} from uid 10076 on display 0
    08-20 21:24:24.210  2235  2408 E WindowManager: App trying to use insecure INPUT_FEATURE_NO_INPUT_CHANNEL flag. Ignoring
    08-20 21:24:24.416  2235  2258 I ActivityManager: Displayed org.schabi.newpipe/.settings.SettingsActivity: +329ms
    08-20 21:24:24.501  3111  3144 D OpenGLRenderer: endAllActiveAnimators on 0x8af98e00 (NavigationMenuItemView) with handle 0x9537f9f0
    08-20 21:24:25.903  2235  2333 D WifiStateMachine: updateCapabilities for config:[redacted]false,false
    08-20 21:24:26.447  3127  3719 I charon  : 07[IKE] sending keep alive to 86.106.90.99[4500]
    08-20 21:24:26.453  3127  3476 D ProtonLogger_0: 21:24:26-4: 07[IKE] sending keep alive to 86.106.90.99[4500]
    08-20 21:24:26.623  2235  3164 E WindowManager: App trying to use insecure INPUT_FEATURE_NO_INPUT_CHANNEL flag. Ignoring
    08-20 21:24:27.708  2394  2394 I SlideTouchEvent: vel=0.0, MinimumFlingVelocity=150
    08-20 21:24:28.435  2394  2394 I SlideTouchEvent: vel=0.0, MinimumFlingVelocity=150
    08-20 21:24:28.620  2235  2235 W WindowManager: Attempted to remove non-existing token: android.os.Binder@e6d4d58
    08-20 21:24:31.508  2379  2379 W SubtypeLocaleUtils: KeyboardLayoutSet not found, use QWERTY: locale=en_AU extraValue=TrySuppressingImeSwitcher,AsciiCapable,SupportTouchPositionCorrection,EmojiCapable
    08-20 21:24:31.509  2379  2379 W SubtypeLocaleUtils: KeyboardLayoutSet not found, use QWERTY: locale=hu_ZZ extraValue=AsciiCapable,SupportTouchPositionCorrection,EmojiCapable
    08-20 21:24:31.510  2379  2379 W RichInputMethodSubtype: Can't find emoji subtype
    08-20 21:24:31.510  2379  2379 W RichInputMethodSubtype: No input method subtype found; returning dummy subtype: Multi-lingual subtype: android.view.inputmethod.InputMethodSubtype@d78b2ed0, zz
    08-20 21:24:31.640  2379  2379 I EmojiCategory: Last Emoji category id is 0
    08-20 21:24:31.686  2379  2379 W ViewPager: Requested offscreen page limit 0 too small; defaulting to 1
    08-20 21:24:31.696  2379  2379 I LatinIME: Starting input. Cursor position = 0,0
    08-20 21:24:31.798  2379  2379 W SubtypeLocaleUtils: KeyboardLayoutSet not found, use QWERTY: locale=en_AU extraValue=TrySuppressingImeSwitcher,AsciiCapable,SupportTouchPositionCorrection,EmojiCapable
    08-20 21:24:31.892  2379  2379 I Choreographer: Skipped 30 frames!  The application may be doing too much work on its main thread.
    08-20 21:24:31.952  2235  2333 D WifiStateMachine: updateCapabilities for config:[redacted]false,false
    08-20 21:24:32.564  2394  2394 I SlideTouchEvent: vel=0.0, MinimumFlingVelocity=150
    08-20 21:24:32.571  2379  2379 W InputMethodService: Window size has been changed. This may cause jankiness of resizing window: -1 -> -2
    08-20 21:24:33.095  2394  2394 I SlideTouchEvent: vel=0.0, MinimumFlingVelocity=150
    08-20 21:24:33.545  3111  3111 W IInputConnectionWrapper: finishComposingText on inactive InputConnection
    08-20 21:24:37.204  3111  3123 I art     : Background partial concurrent mark sweep GC freed 695677(30MB) AllocSpace objects, 47(4MB) LOS objects, 30% free, 36MB/52MB, paused 6.864ms total 464.790ms
    08-20 21:24:38.000  2235  2333 D WifiStateMachine: updateCapabilities for config:[redacted]false,false
    08-20 21:24:38.954  3111  3111 I ExoPlayerImpl: Init 85224d3 [ExoPlayerLib/2.12.3] [hammerhead, Nexus 5, LGE, 25]
    08-20 21:24:38.979  3111  3111 W Player  : Broadcast receiver already unregistered: Receiver not registered: org.schabi.newpipe.player.Player$3@b103b2f
    08-20 21:24:39.027  2394  2394 D ro      : inflating media notification
    08-20 21:24:39.380  2235  3161 E WindowManager: App trying to use insecure INPUT_FEATURE_NO_INPUT_CHANNEL flag. Ignoring
    08-20 21:24:39.417  3111  3111 I ExoPlayerImpl: Release 85224d3 [ExoPlayerLib/2.12.3] [hammerhead, Nexus 5, LGE, 25] [goog.exo.core, goog.exo.mediasession]
    08-20 21:24:39.420  2235  2408 I MediaFocusControl:  AudioFocus  abandonAudioFocus() from uid/pid 10076/3111 clientId=android.media.AudioManager@caee8acorg.schabi.newpipe.player.helper.AudioReactor@7da7a98
    08-20 21:24:39.429  3111  3111 I ExoPlayerImpl: Init 2f0b2f1 [ExoPlayerLib/2.12.3] [hammerhead, Nexus 5, LGE, 25]
    08-20 21:24:39.630  3111  3123 I art     : Background partial concurrent mark sweep GC freed 134115(6MB) AllocSpace objects, 40(1592KB) LOS objects, 32% free, 32MB/48MB, paused 11.758ms total 234.595ms
    08-20 21:24:39.753  3111 11701 D CacheFactory: initExoPlayerCache: cacheDir = /storage/emulated/0/Android/data/org.schabi.newpipe/cache/exoplayer
    08-20 21:24:39.753  3111 11701 D CacheFactory: initExoPlayerCache: cacheDir = /storage/emulated/0/Android/data/org.schabi.newpipe/cache/exoplayer
    08-20 21:24:39.886  2394  2407 I art     : Background sticky concurrent mark sweep GC freed 204981(13MB) AllocSpace objects, 0(0B) LOS objects, 33% free, 25MB/38MB, paused 5.307ms total 217.016ms
    08-20 21:24:40.042  1747  2450 I MediaPlayerService: MediaPlayerService::getOMX
    08-20 21:24:40.044  3111 11705 I OMXClient: MuxOMX ctor
    08-20 21:24:40.049  1744 32395 I OMXMaster: makeComponentInstance(OMX.google.vp9.decoder) in mediacodec process
    08-20 21:24:40.056  3111 11704 I MediaCodec: [OMX.google.vp9.decoder] setting surface generation to 3185721
    08-20 21:24:40.063  1744  1744 W OMXNodeInstance: [6d00085:google.vp9.decoder] component does not support metadata mode; using fallback
    08-20 21:24:40.063  3111 11705 E ACodec  : [OMX.google.vp9.decoder] storeMetaDataInBuffers failed w/ err -1010
    08-20 21:24:40.070  1744  1744 E OMXNodeInstance: setConfig(6d00085:google.vp9.decoder, ConfigPriority(0x6f800002)) ERROR: UnsupportedIndex(0x8000101a)
    08-20 21:24:40.073  3111 11705 I ACodec  : codec does not support config priority (err -1010)
    08-20 21:24:40.073  1744  2449 E OMXNodeInstance: getParameter(6d00085:google.vp9.decoder, ParamVideoAndroidVp8Encoder(0x6f600007)) ERROR: UnsupportedIndex(0x8000101a)
    08-20 21:24:40.089  1747  2450 I MediaPlayerService: MediaPlayerService::getOMX
    08-20 21:24:40.092  3111 11709 I OMXClient: MuxOMX ctor
    08-20 21:24:40.093  1744  1744 I OMXMaster: makeComponentInstance(OMX.google.aac.decoder) in mediacodec process
    08-20 21:24:40.100  1744  1822 E OMXNodeInstance: setConfig(6d00086:google.aac.decoder, ConfigPriority(0x6f800002)) ERROR: Undefined(0x80001001)
    08-20 21:24:40.100  3111 11709 I ACodec  : codec does not support config priority (err -2147483648)
    08-20 21:24:40.133  1744 11710 I SoftAAC2: Reconfiguring decoder: 0->44100 Hz, 0->2 channels
    08-20 21:24:40.173  3111 11701 D AudioTrack: Client defaulted notificationFrames to 3675 for frameCount 11025
    08-20 21:24:40.344  3111 11704 D MediaCodec: [OMX.google.vp9.decoder] setting dataspace on output surface to #104
    08-20 21:24:41.121  3111 11704 D SoftwareRenderer: setting dataspace on output surface to #104
    08-20 21:24:41.685  2235  2845 I MediaFocusControl:  AudioFocus  requestAudioFocus() from uid/pid 10076/3111 clientId=android.media.AudioManager@caee8acorg.schabi.newpipe.player.helper.AudioReactor@18689b8 req=1 flags=0x0
    08-20 21:24:41.691  1740  1872 D audio_hw_primary: enable_audio_route: usecase(1) apply and update mixer path: low-latency-playback
    08-20 21:24:42.367  2235  2328 W ConnectivityExtension: ConnectivityExt jar file not present
    08-20 21:24:43.214  2235  2328 W ConnectivityExtension: ConnectivityExt jar file not present
    08-20 21:24:43.796  2235  2245 I art     : Background sticky concurrent mark sweep GC freed 89048(5MB) AllocSpace objects, 3(60KB) LOS objects, 28% free, 15MB/22MB, paused 11.435ms total 150.783ms
    08-20 21:24:43.970  2235  2328 W ConnectivityExtension: ConnectivityExt jar file not present
    08-20 21:24:43.986  2235  2253 E BatteryStatsService: power: Missing API
    08-20 21:24:43.989  2235  2253 E BatteryStatsService: no controller energy info supplied
    08-20 21:24:43.989  2235  2253 E BatteryStatsService: no controller energy info supplied
    08-20 21:24:44.260  2235  2253 E BatteryStatsService: modem info is invalid: ModemActivityInfo{ mTimestamp=0 mSleepTimeMs=0 mIdleTimeMs=0 mTxTimeMs[]=[0, 0, 0, 0, 0] mRxTimeMs=0 mEnergyUsed=0}
    08-20 21:24:44.500  2235  2235 W art     : Long monitor contention with owner Binder:2235_E (20037) at void com.android.server.power.PowerManagerService.acquireWakeLockInternal(android.os.IBinder, int, java.lang.String, java.lang.String, android.os.WorkSource, java.lang.String, int, int)(PowerManagerService.java:1001) waiters=1 in boolean com.android.server.power.PowerManagerService.isInteractiveInternal() for 233ms
    08-20 21:24:44.505  2235  2260 W art     : Long monitor contention with owner Binder:2235_E (20037) at void com.android.server.power.PowerManagerService.acquireWakeLockInternal(android.os.IBinder, int, java.lang.String, java.lang.String, android.os.WorkSource, java.lang.String, int, int)(PowerManagerService.java:1001) waiters=0 in void com.android.server.power.PowerManagerService.handleSandman() for 238ms
    08-20 21:24:49.154  2235  2328 W ConnectivityExtension: ConnectivityExt jar file not present
    08-20 21:24:49.981  2235  2328 W ConnectivityExtension: ConnectivityExt jar file not present
    08-20 21:24:54.833  2235  2584 I ActivityManager: Setting hasTopUi=true for pid=2394
    08-20 21:24:54.836  2394  2394 D PhoneStatusBar: disable: < expand ICONS* alerts SYSTEM_INFO* back home recent clock search quick_settings >
    08-20 21:24:56.195  2235  2328 W ConnectivityExtension: ConnectivityExt jar file not present
    08-20 21:24:56.894  2235  2328 W ConnectivityExtension: ConnectivityExt jar file not present
    08-20 21:24:57.047  2235  2245 I art     : Background sticky concurrent mark sweep GC freed 69285(5MB) AllocSpace objects, 5(116KB) LOS objects, 26% free, 16MB/22MB, paused 3.203ms total 135.176ms
    08-20 21:24:57.873  2235  2328 W ConnectivityExtension: ConnectivityExt jar file not present
    08-20 21:25:08.906  2235  2845 I DisplayManagerService: Display device removed: DisplayDeviceInfo{"hidden:screen-recording": uniqueId="virtual:org.lineageos.recorder,10023,hidden:screen-recording,0", 1080 x 1920, modeId 2, defaultModeId 2, supportedModes [{id=2, width=1080, height=1920, fps=60.0}], colorMode 0, supportedColorModes [0], HdrCapabilities null, density 1, 1.0 x 1.0 dpi, appVsyncOff 0, presDeadline 16666666, touch NONE, rotation 0, type VIRTUAL, state ON, owner org.lineageos.recorder (uid 10023), FLAG_SECURE}
    08-20 21:25:08.960 10567 10567 I ScreencastService: Video complete: /storage/emulated/0/Movies/ScreenRecords/ScreenRecord-2021-08-20-21-22-38.mp4
    08-20 21:25:09.034 10567 10954 D MPEG4Writer: Video track stopping
    08-20 21:25:09.034 10567 10954 D MPEG4Writer: Video track source stopping
    08-20 21:25:09.034 10567 10954 D MPEG4Writer: Video track source stopped
    08-20 21:25:09.038 10567 10959 I MPEG4Writer: Received total/0-length (5236/2) buffers and encoded 5236 frames. - Video
    08-20 21:25:09.040 10567 10954 D MPEG4Writer: Video track stopped
    08-20 21:25:09.040 10567 10954 D MPEG4Writer: Stopping writer thread
    08-20 21:25:09.044 10567 10958 D MPEG4Writer: 0 chunks are written in the last batch
    08-20 21:25:09.045 10567 10954 D MPEG4Writer: Writer thread stopped
    08-20 21:25:09.053 10567 10954 I MPEG4Writer: The mp4 file will not be streamable.
    08-20 21:25:09.114  1747  2561 W GraphicBufferSource: Dropped back down to Loaded without Executing
    08-20 21:25:09.280  1747  2562 I OMX-VENC: Component Deinit
    08-20 21:25:09.333  1746  2435 I FFmpegExtractor: android-source:0xb47b4000
    08-20 21:25:09.364  1746  2435 D FFmpegExtractor: supported codec (h264) by official Stagefright
    08-20 21:25:09.364  1746  2435 D FFmpegExtractor: ffmpeg detected media content as 'video/mp4' with confidence 0.08
    08-20 21:25:12.312  2394  2394 W StatusBar: removeNotification for unknown key: 0|org.lineageos.recorder|61|null|10023
    08-20 21:25:12.834  2235  2606 W InputMethodManagerService: Window already focused, ignoring focus gain of: com.android.internal.view.IInputMethodClient$Stub$Proxy@9ccb402 attribute=null, token = android.os.BinderProxy@75b4a44
    08-20 21:25:12.845  2235  2247 I ActivityManager: Setting hasTopUi=false for pid=2394
    08-20 21:25:12.851  2394  2394 D PhoneStatusBar: disable: < expand icons* alerts system_info* back home recent clock search quick_settings >
    08-20 21:25:14.016  2394  2394 I SlideTouchEvent: vel=0.0, MinimumFlingVelocity=150
    08-20 21:25:14.429  2394  2394 I SlideTouchEvent: vel=679.0385, MinimumFlingVelocity=150
    08-20 21:25:14.429  2394  2394 I SlideTouchEvent: Sliding distance is too short, can not trigger the single hand mode
    08-20 21:25:14.461  2235  3165 I ActivityManager: START u0 {flg=0x10804000 cmp=com.android.systemui/.recents.RecentsActivity} from uid 10037 on display 0
    08-20 21:25:14.633  2235  2250 W art     : Long monitor contention with owner Binder:2235_D (3165) at int com.android.server.am.ActivityStarter.startActivityMayWait(android.app.IApplicationThread, int, int, int, java.lang.String, android.content.Intent, java.lang.String, android.service.voice.IVoiceInteractionSession, com.android.internal.app.IVoiceInteractor, android.os.IBinder, java.lang.String, int, int, android.app.ProfilerInfo, android.app.IActivityManager$WaitResult, android.content.res.Configuration, android.os.Bundle, boolean, int, android.app.IActivityContainer, com.android.server.am.TaskRecord)(ActivityStarter.java:804) waiters=0 in void com.android.server.am.ActivityManagerService$MainHandler.handleMessage(android.os.Message) for 115ms
    08-20 21:25:14.848  2235  2245 I art     : Background partial concurrent mark sweep GC freed 87641(5MB) AllocSpace objects, 3(60KB) LOS objects, 33% free, 15MB/22MB, paused 2.769ms total 311.735ms
    08-20 21:25:14.943  2394  2407 I art     : Background partial concurrent mark sweep GC freed 221876(12MB) AllocSpace objects, 3(132KB) LOS objects, 39% free, 23MB/38MB, paused 14.582ms total 347.390ms
    08-20 21:25:15.219  3111 11865 W Adreno-EGL: : EGL_BAD_ATTRIBUTE
    08-20 21:25:15.220  3111 11704 I MediaCodec: [OMX.google.vp9.decoder] setting surface generation to 3185722
    08-20 21:25:15.368  2235  2247 W AppOps  : Finishing op nesting under-run: uid 10076 pkg org.schabi.newpipe code 40 time=0 duration=0 nesting=0
    08-20 21:25:15.482  1740  1880 W AudioFlinger::EffectModule: EffectModule 0xb5203780 destructor called with unreleased interface
    08-20 21:25:15.482  1740  1740 W AudioFlinger::EffectHandle: disconnect Effect handle 0xb577d340 disconnected after thread destruction
    08-20 21:25:15.556  3111  3123 I art     : Background sticky concurrent mark sweep GC freed 91381(6MB) AllocSpace objects, 34(2MB) LOS objects, 15% free, 41MB/48MB, paused 4.656ms total 114.688ms
    08-20 21:25:15.571  3111 11701 D CacheFactory: initExoPlayerCache: cacheDir = /storage/emulated/0/Android/data/org.schabi.newpipe/cache/exoplayer
    08-20 21:25:15.646  1747  2562 I MediaPlayerService: MediaPlayerService::getOMX
    08-20 21:25:15.651  3111 11870 I OMXClient: MuxOMX ctor
    08-20 21:25:15.660  1744  2449 I OMXMaster: makeComponentInstance(OMX.google.aac.decoder) in mediacodec process
    08-20 21:25:15.666  1744  1822 E OMXNodeInstance: setConfig(6d00087:google.aac.decoder, ConfigPriority(0x6f800002)) ERROR: Undefined(0x80001001)
    08-20 21:25:15.667  3111 11870 I ACodec  : codec does not support config priority (err -2147483648)
    08-20 21:25:15.709  1744 11871 I SoftAAC2: Reconfiguring decoder: 0->44100 Hz, 0->2 channels
    08-20 21:25:15.734  3111 11701 D AudioTrack: Client defaulted notificationFrames to 3675 for frameCount 11025
    08-20 21:25:15.802  3111  3111 W BottomSheetBehavior: BottomSheetBehavior now supports multiple callbacks. `setBottomSheetCallback()` removes all existing callbacks, including ones set internally by library authors, which may result in unintended behavior. This may change in the future. Please use `addBottomSheetCallback()` and `removeBottomSheetCallback()` instead to set your own callbacks.
    08-20 21:25:15.832  2235  2606 W AppOps  : Finishing op nesting under-run: uid 10076 pkg org.schabi.newpipe code 40 time=0 duration=0 nesting=0
    08-20 21:25:15.838  3111  3111 I ExoPlayerImpl: Release 2f0b2f1 [ExoPlayerLib/2.12.3] [hammerhead, Nexus 5, LGE, 25] [goog.exo.core, goog.exo.mediasession]
    08-20 21:25:15.850  2235  2847 I MediaFocusControl:  AudioFocus  abandonAudioFocus() from uid/pid 10076/3111 clientId=android.media.AudioManager@caee8acorg.schabi.newpipe.player.helper.AudioReactor@18689b8
    08-20 21:25:15.864  3111  3111 I art     : System.exit called, status: 0
    08-20 21:25:15.865  3111  3111 I AndroidRuntime: VM exiting with result code 0, cleanup skipped.
    08-20 21:25:15.939  1740  1740 W AudioFlinger::EffectModule: EffectModule 0xb4d17a80 destructor called with unreleased interface
    08-20 21:25:15.940  1740 32071 W AudioFlinger::EffectHandle: disconnect Effect handle 0xb577d740 disconnected after thread destruction
    08-20 21:25:15.945  2235  3164 D GraphicsStats: Buffer count: 8
    08-20 21:25:15.946  2235  3164 I ActivityManager: Process org.schabi.newpipe (pid 3111) has died
    08-20 21:25:15.946  2235  3164 D ActivityManager: cleanUpApplicationRecord -- 3111
    08-20 21:25:16.200  2235  3161 I ActivityManager: Killing 10567:org.lineageos.recorder/u0a23 (adj 1001): remove task
    

    Device info

    • Android version/Custom ROM version: 7.1.2/LineageOS 14.1
    • Device model: Nexus 5
    bug youtube player 
    opened by ghost 114
  • Buffering video unrelated to connection

    Buffering video unrelated to connection

    Screen recording

    As you can see in the screen record videos randomly buffer when in video mode, however in background mode the audio plays fine.

    This issue is limited to newpipe and other video apps work fine.

    Samsung galaxy s10+ android 11

    Reinstalling newpipe doesn't work Changing Internet connection doesn't work

    bug ASAP youtube requires extractor change 
    opened by n0rder 109
  • Chromecast support

    Chromecast support

    First off I wanted to say good work on New pipe, it is now my go to YouTube player! The only functionality I miss is the ability to chromecast. I'm not sure if this is in the works or even possible? Thanks

    feature request device/software specific wontfix 
    opened by lacolos 103
  • [unified player] everything crashes after playing a video on fullscreen

    [unified player] everything crashes after playing a video on fullscreen

    Version

    -latest apk provided by B0pol

    Steps to reproduce the bug

    1. Go to any video
    2. play on fullscreen
    3. voice keeps playing for a while and the video stops
    4. now every video on my phone can't be played for some reason

    Expected behavior

    should be playing normally as it does for the latest newpipe version

    Actual behaviour

    the app crashes and after forcing it to stop i no longer can play any video on my phone even from gallery [it may be something with my phone custom rom (RR Nougat) but it never happened this is the first time]. to fix the issue i just restart the phone

    bug device/software specific 
    opened by panacist 101
  • New streams notifications

    New streams notifications

    Checking and notifying about new streams from subscriptions Closes #719 closes #1086

    | Screenshot_2019-05-09-21-00-19 | Screenshot_2019-05-09-21-02-27 | |---|---|

    feature request feed 
    opened by Koitharu 95
  • Small fixes of issues with old devices support, brightness, etc

    Small fixes of issues with old devices support, brightness, etc

    What is it?

    • [x] Bug fix (user facing)

    Description of the changes in your PR

    Some very small issues were fixed by this PR.

    • I don't like this thing https://github.com/TeamNewPipe/NewPipe/compare/dev...avently:small-fixes2?expand=1#diff-20e0b2ce67b307277c153b396fb79660R355 but making the height anything but wrap content makes red dot in progress bar misaligned on Android 4.4, see #4245. With default height progress bar has smaller touchable area but looks ok on old devices too.
    • this thing https://github.com/TeamNewPipe/NewPipe/compare/dev...avently:small-fixes2?expand=1#diff-57eb59a31e38fed8f965fb4a544e3b9fR540 prevents freeze on 4.4. Looks like some devices have even less available size for storing bundle data than Google recommends, see #4230. Anyway, this is how it should work and I'm fine with it
    • brightness will be saved in the place where it changes.

    Fixes the following issue(s)

    closes #4271 closes #4253 closes #4245 closes #4230 closes #4277 closes #4143 closes #4294 closes #4292 closes #4322

    Testing apk

    find the testing apk somewhere in this page because it's changes often

    Agreement

    bug player 
    opened by avently 90
  • Search button - possibility to select with cursor left, right, top or down

    Search button - possibility to select with cursor left, right, top or down

    Checklist

    • [X] I made sure that there are no existing issues - open or closed - which I could contribute my information to.
    • [X] I have read the FAQ and my problem isn't listed.
    • [X] I'm aware that this is a request for NewPipe itself and that requests for adding a new service need to be made at NewPipeExtractor.
    • [X] I have taken the time to fill in all the required details. I understand that the feature request will be dismissed otherwise.
    • [X] This issue contains only one feature request.
    • [X] I have read and understood the contribution guidelines.

    Feature description

    The Search button should be highlighted with the keyboard cursor keys left, right, top or bottom.

    Why do you want this feature?

    I use NewPipe on Android Smart Box controlled by the remote control and I can't run the Search.

    Additional information

    No response

    feature request GUI Android TV 
    opened by Gelip 2
  • Update NewPipeExtractor and properly linkify comments

    Update NewPipeExtractor and properly linkify comments

    What is it?

    • [x] Bugfix (user facing)
    • [ ] Feature (user facing)
    • [x] Codebase improvement (dev facing)
    • [ ] Meta improvement to the project (dev facing)

    Description of the changes in your PR

    TODO

    Fixes the following issue(s)

    TODO

    APK testing

    The APK can be found by going to the "Checks" tab below the title. On the left pane, click on "CI", scroll down to "artifacts" and click "app" to download the zip file which contains the debug APK of this PR.

    Due diligence

    opened by Stypox 1
  • YT Mix page continuation keeps repeating items

    YT Mix page continuation keeps repeating items

    Checklist

    • [X] I am able to reproduce the bug with the latest version.
    • [X] I made sure that there are no existing issues - open or closed - which I could contribute my information to.
    • [X] I have read the FAQ and my problem isn't listed.
    • [X] I have taken the time to fill in all the required details. I understand that the bug report will be dismissed otherwise.
    • [X] This issue contains only one bug.
    • [X] I have read and understood the contribution guidelines.

    Affected version

    0.24.1

    Steps to reproduce the bug

    1. Open any infinity playlist like https://m.youtube.com/watch?v=o_1aF54DO60&list=RDGMEM6ijAnFTG9nX1G-kbWBUCJAVMo_1aF54DO60&start_radio=1
    2. Scroll down for loading next part of playlist

    Expected behavior

    was loaded videos that has loaded above

    Actual behavior

    was loaded next part of playlist

    Screenshots/Screen recordings

    It's easy for reproducing, skip.

    Logs

    No response

    Affected Android/Custom ROM version

    Android 10

    Affected device model

    Redmi note 9 pro

    Additional information

    No response

    bug youtube 
    opened by m9w 0
  • Add Readme in

    Add Readme in "pa: punjabi (indian) language

    What is it?

    • [ ] Bugfix (user facing)
    • [ ] Feature (user facing)
    • [ ] Codebase improvement (dev facing)
    • [x] Meta improvement to the project (dev facing)

    Description of the changes in your PR

    This PR Adds Readme in Punjabi (Indian) Local Language For Better Localisation & Reachability.

    Relies on the following changes

    • Adds Readme "pa" language [Punjabi] (Indian) to Doc folder, updates its refrence in other languages Readme's.

    This PR Replaces my prevoius PR #9617 IN WHICH Github for Windows tried to put all my efforts in vain but not this Time😅

    APK testing

    The APK can be found by going to the "Checks" tab below the title. On the left pane, click on "CI", scroll down to "artifacts" and click "app" to download the zip file which contains the debug APK of this PR.

    Due diligence

    opened by ShareASmile 1
  • Disable tunneling on internal Surface related Exceptions

    Disable tunneling on internal Surface related Exceptions

    What is it?

    • [X] Bugfix (user facing)
    • [ ] Feature (user facing)
    • [ ] Codebase improvement (dev facing)
    • [ ] Meta improvement to the project (dev facing)

    Description of the changes in your PR

    This PR tries to automatically disable media tunneling on unrecoverable internal player exceptions. Analysis was possible thanks to the stack trace provided in this comment: https://github.com/TeamNewPipe/NewPipe/issues/9023#issuecomment-1321003333 In the past we tried to disable media tunneling on devices that claim to support it but fail to do so. This was not only device specific but also frustrating for users that would have to create an issue on Github to hope for help with a new version release. With the new ExoPlayer Settings page that is still a PR (#8875) we have a general approach. However most users would still first create an issue before they would learn about these settings. So an automatic recovery for at least some of the devices seems useful.

    Fixes the following issue(s)

    • It might be a fix for only a part of the affected devices of #9023. It requires testing on affected devices to see how effective this workaround is.

    APK testing

    The APK can be found by going to the "Checks" tab below the title. On the left pane, click on "CI", scroll down to "artifacts" and click "app" to download the zip file which contains the debug APK of this PR.

    Due diligence

    help wanted player device/software specific 
    opened by Redirion 16
  • Check availability of Samsung DeX only on Samsung devices

    Check availability of Samsung DeX only on Samsung devices

    What is it?

    • [ ] Bugfix (user facing)
    • [ ] Feature (user facing)
    • [X] Codebase improvement (dev facing)
    • [ ] Meta improvement to the project (dev facing)

    Description of the changes in your PR

    Samsung DeX is a feature of Samsung devices. There is no reason to assume it is on other devices. This disables the reflection calls on all devices that aren't manufactured by Samsung.

    APK testing

    The APK can be found by going to the "Checks" tab below the title. On the left pane, click on "CI", scroll down to "artifacts" and click "app" to download the zip file which contains the debug APK of this PR.

    Due diligence

    GUI device/software specific 
    opened by Redirion 1
Releases(v0.24.1)
  • v0.24.1(Nov 6, 2022)

    :arrow_right: :arrow_right: :arrow_right: Read the blog post :arrow_left: :arrow_left: :arrow_left:

    New

    • Add monochrome icon #8987
    • Add link to FAQ in the app #9164
    • Add an "Open in browser" button on error panel #9180
    • Add option to display channel groups as list instead of grid #9207 #9298
    • Long-click on stream segment to share timestamped URLs (for YouTube only) #9203
    • [YouTube] Support handles #9291 TeamNewPipe/NewPipeExtractor#964

    Improved

    • Add play queue button to video details fragment #8946 #9109
    • Show "Hold to enqueue" tip in local playlists #9196
    • [YouTube] Add support for attributed text description TeamNewPipe/NewPipeExtractor#953
    • [YouTube] Support all channel usernames TeamNewPipe/NewPipeExtractor#964

    Fixed

    • Fix potential cast exception in comments text #9065

    • Fix DownloadDialog crash on screen rotation #9079

    • Fix crash when clicking download and quitting the history fragment #9143

    • Fix job for removing watched streams from playlist not executing only once #8706

    • Fix duplicate videos in feed group "All" #9230

    • [YouTube] Fix extraction of videos in channels and in feeds when not using dedicated mode (RSS feeds) TeamNewPipe/NewPipeExtractor#944

      ⚠️ Due to the separation of shorts and livestreams (including VODs) of most channels into separate tabs, these contents will be not available until channel tabs support is added.

      However, you can use workarounds until this support is added:

      • For feeds, use the dedicated method to fetch channels (a.k.a. RSS feeds);
      • For channels: you can use the uploads playlist of a channel to get all its public videos: take a channel ID (not a username or a handle), replace UC by UU at the beginning of the ID and use the resulting ID as a playlist ID (append this ID to a playlist URL like https://www.youtube.com/playlist?list= and then open this URL in NewPipe). These playlists may be not available on some YouTube "system" channels.
    • [YouTube] Fix 403 HTTP errors when playing sometimes videos in some countries by using a workaround TeamNewPipe/NewPipeExtractor#960

      ⚠️ The workaround can break at any time. If you see this error again, and you have the ability to block network requests to specific domains for apps on your device, you can block the youtubei.googleapis.com domain to work around this issue.

      However, this has a few downsides:

      • the 720p video stream with audio (used for external players) will be not available on musical contents;
      • the 48kbps M4A audio stream and the 144p 3GPP video stream will be not available;
      • the rewind duration of livestreams will be limited to 30 seconds at most, instead of 1 hour.
    • [YouTube] Fix extraction of author and video count of playlists with their new metadata format TeamNewPipe/NewPipeExtractor#958

      ⚠️ With the new metadata format, no author thumbnail is returned anymore.

    • [SoundCloud] Fix tracks in incorrect order on playlists TeamNewPipe/NewPipeExtractor#939

    • [SoundCloud] Fix getting more comments TeamNewPipe/NewPipeExtractor#943

    Localization

    • Add new localizations (Icelandic, Latvian, Malayalam) to language selector #9179
    • Update translations #9092, #9179, #9256
    • Remove empty localizations #9256

    Development

    • Use LinkifyCompat #8934
    • Utilize useSimpleSummaryProvider attribute #9011
    • Improve FeedGroupDialogViewModel factory #8734
    • Update Android Gradle Plugin to 7.3.0 #8986
    • Use range-limiting methods in more places #8747
    • Use Okio's ByteString for download checksums #8767
    • Calculate search score using streams #8739
    • Use TextViewCompat.setCompoundDrawableTintList() #8655
    • Update AppCompat to 1.5.1 and compileSdk to 32 #8768
    • Update PrettyTime from 5.0.3 to 5.0.6 to include new localizations made by NewPipe contributors #9272
    • Update NewPipe Extractor #9291
    Source code(tar.gz)
    Source code(zip)
    NewPipe_v0.24.1.apk(9.99 MB)
  • v0.24.0(Sep 25, 2022)

    :arrow_right: :arrow_right: :arrow_right: Read the blog post :arrow_left: :arrow_left: :arrow_left:

    New

    • :warning: Bump minSdk to 21 (Android 5 Lollipop) and drop support for Android 4.4 KitKat #7613
    • Add Download entry to long-press menu #8397
    • Add option to hide future videos in feed #8545 #8966
    • Add Share menu item to local playlists #8542

    Improved

    • Crop the notification thumbnail in 1:1 mode instead of stretching it #8533
    • Make thumbnails' scaleType fitCenter #8573
    • Improve image placeholders #8530
    • Removed the "(beta)"-tag from services #8637
    • Refactor player and extract UI components #8170 #8661 #8678 #8731
    • Sort tags case-insensitively #8709

    Fixed

    • Fix wrong image used as a placeholder for channels avatars #8676
    • Fix various issues with player notification #8678 #8899

    Localization

    • Make some much needed changes to the README #8372
    • Fix lang code for Chinese Simplified #8549

    Development

    • Run CI on all release branches #8565
    • Clean up proguard file #8468
    • Update ExoPlayer to 2.18.1 #8536 #8687
    • Specify used ExoPlayer libraries #8469
    • Use minimum required permissions for GitHub workflows #8569
    • Checkstyle assign on same line #8601
    • Use ViewCompat.setBackgroundTintList() #8633
    • Update some misc libraries #8475
    • Use stream sorting #8635
    • Use Java 9 collection factories: List.of(), Set.of(), Map.of() #8631 #8679
    • Use range-limiting method MathUtils.clamp() #8651 #8737
    • Use Kotlin IO extensions #8648
    • Remove some unnecessary methods #8663 #8740
    • Remove deprecated method calls in FocusAwareCoordinator #8670
    • Deduplicate SQL queries to get feed streams #8621
    • Update OkHttp to 4.10.0 #8624
    • Update Lifecycle to 2.5.1 #8683
    • Update AndroidX Fragment to 1.4.1 #8691
    • Update Google Material to 1.6.1 #8692
    • Use Throwable.stackTraceToString() #8701
    • Update AppCompat to 1.4.2 #8667
    • Use WindowMetrics API #8656
    • Update AndroidX Room to 2.4.3 #8716
    • Remove uses of setBottomSheetCallback() #8669
    • Refactor LicenseFragmentHelper #8682
    • Make OnClickGesture an interface #8721
    • Reduce View.kt size #8708
    • Use toArray() with zero-length arrays #8724
    • Use Comparator factory methods #8728
    • Use Collectors.joining() #8738
    • Update FilePicker to our custom fork and disable Jetifier #8666
    • Add FAQ entry to the template checklists #8822
    • Use ListAdapter for search predictions #8719 #8972
    • Update Gradle to 7.5.1 #8751
    • Remove extra whitespace from issue and PR templates #8755
    • Clarify that span shouldn't be in translated READMEs #8754
    • Keep strong references to Picasso notification icon loading targets #8677
    • Create media session UI and fix player notification #8678
    Source code(tar.gz)
    Source code(zip)
    NewPipe_v0.24.0.apk(9.87 MB)
  • v0.23.3(Aug 25, 2022)

    Fixed

    • [YouTube] Fix infinite loading when trying to play any video TeamNewPipe/NewPipeExtractor#912, thanks to @Theta-Dev!
    • [YouTube] Fix throttling on some videos TeamNewPipe/NewPipeExtractor#882

    Development

    • Upgrade the jsoup library to 1.15.3, which includes a security fix #8880 TeamNewPipe/NewPipeExtractor#911
    Source code(tar.gz)
    Source code(zip)
    NewPipe_v0.23.3.apk(9.78 MB)
  • v0.23.2(Aug 13, 2022)

    Fixed

    • [YouTube] Fix "Could not get any stream" error when trying to play any video, thanks to @Theta-Dev! TeamNewPipe/NewPipeExtractor#911
    • [YouTube] Fix replacement of video and audio streams by a video saying The following content is not available on this app #890
    Source code(tar.gz)
    Source code(zip)
    NewPipe_v0.23.2.apk(9.80 MB)
  • v0.23.1(Jul 5, 2022)

    :arrow_right: :arrow_right: :arrow_right: Read the blog post :arrow_left: :arrow_left: :arrow_left:

    New

    • Support delivery methods other than progressive HTTP #8153 (thanks to @AudricV!)

      • [YouTube] Use DASH for playback, improving loading times in playback and seeking
      • [YouTube] Full playback of recently ended livestreams
      • [YouTube] Improve availability of some resolutions and formats
      • [PeerTube] Fix seeking on videos with only HLS streams
      • [PeerTube] Fix crash on videos with an audio-only stream
      • [SoundCloud] Fix playback of HLS-only tracks
    • Add button to add a remote playlist to a local one #7355

    • Image preview in Android share sheet (Android 10+ only) #8143

    Improved

    • Improve playback parameters dialog's UI #7989 #8349
    • Moved subscription import/export options to (overflow) menu #7458

    Fixed

    • Fix keyboard doesn't open with disabled animations #8227
    • Fix crash when opening NewPipe from the notification bar #8244
    • Fix hiding player controls when playing from media button #8315
    • Fix history view count #8336 #8564
    • Fix RouterActivity theming (the menu that shows up when you share something to NewPipe) #8332
    • Fix removing only fully watched videos from playlist #8259
    • Fix crash when rotating device on unsupported channels #8192
    • Make volume progress bar match system volume when we start sliding #8377
    • Fix Add to playlist not working and cleanup RouterActivity choice handling (the menu that shows up when you share something to NewPipe) #8340

    Localization

    • Add Hindi translation of the README #8355

    Development

    • Update ACRA library #8206
    • Update user agent used by the downloader #8269
    • Remove unused strings.xml resources #8329
    • Update Groupie and ACRA libraries #8407
    • Update Android Gradle Plugin and Kotlin #8406
    • Use JvmOverloads instead of manually overloading method #8391
    • Remove unnecessary compat method calls #8382
    • Use AppCompatResources #8404
    • Made some much needed changes to the ReadMe #8372
    Source code(tar.gz)
    Source code(zip)
    NewPipe_v0.23.1.apk(9.80 MB)
  • v0.23.0(Apr 29, 2022)

    :arrow_right: :arrow_right: :arrow_right: Read the blog post :arrow_left: :arrow_left: :arrow_left:

    New

    • Notifications for new streams #2335
    • Seamless transition between background and video players when putting the app in background #7349 #8139
    • Change pitch by semitones #7565
    • Implement appending queue to playlist in main player #8008
    • Load YouTube mixes in related items TeamNewPipe/NewPipeExtractor#788 -- note that this has already been broken by YouTube in the EU

    Improved

    • Remember adjustment step size for playback controls (speed and pitch) #7728
    • Mitigating long buffering on initial video playback #7919 #8302
    • Replace R.string.yes with R.string.ok #7976
    • Improve player UI and navigability for Android TV #7963
    • Add a confirmation button when deleting all files in downloader #5878
    • Remove icon duplicates and fix some theming issues #7518 #8081
    • ExoPlayer 2.17.1 update and MediaSource management rework #8020 #8150 #8249

    Fixed

    • Fix player controls not hiding if resumed from media button #7341
    • Migrate app update checker to AndroidX Work #7975
    • Fix error notification on KitKat #7977
    • Fix playback being reset to beginning when player type was changed #8020
    • Fix download dialog selector layout #7516
    • Fix crash when rotating device with playlist dialog open #8146
    • Adapt opacity of popup close button to allow touches in other apps on Android >=12 #8279

    Development

    • Replace CircleImageView with ShapeableImageView #7925
    • Solve Java warning Raw use of parameterized class #7904
    • Fix Room warning about unused columns during build #7905
    • Fix build on Apple Silicon Macs #7782
    • Refactor generating InfoItemDialog's #7570
    • Better equals check #7910
    • Update Android Gradle Plugin and Gradle #7947
    • Remove duplicate large-land player layout #7894
    • Update ConstraintLayout and Room libraries #7954
    • Update Kotlin to 1.6.10 #7952
    • Update some AndroidX libraries #7978
    • Deduplicate code for fetching stream info when sparse #7981 #8127
    • Extract some view click listeners from player #8011
    • Delete some unused code #8067
    • Clean up the about package a bit #8065
    • Create stub implementation for OnSeekBarChangeListener #8066
    • Some lint cleaning #8068
    • Update Checkstyle to 10.0 and fix various related issues #8073
    • Update license to latest version #8076 #8077
    • Update CONTRIBUTING.md with current checkstyle.xml path #8175
    • Update GitHub action dependencies in workflows #8198
    • Update AGP, Gradle, and Kotlin #8204
    • Use simpler DrawerLayout method #8200
    • Replace checklist drawable #8199
    Source code(tar.gz)
    Source code(zip)
    NewPipe_v0.23.0.apk(9.70 MB)
  • v0.22.2(Apr 15, 2022)

  • v0.22.1(Feb 26, 2022)

  • v0.22.0(Feb 19, 2022)

    :arrow_right: :arrow_right: :arrow_right: Read the blog post :arrow_left: :arrow_left: :arrow_left:

    New

    • New Fast Forward/Rewind behavior #4833
    • Searchable Preferences / Settings #7586, #7860
    • Highlight pinned comments as such #7577
    • Added FSFE-Tube PeerTube instance #7481

    Improved

    • Unify error reporting and add error notification #7482
    • Show an alert dialog when no appropriate file manager was found #7452
    • Do not repeatedly say "Video preview thumbnail" when in reader mode #7619
    • Increase playlist stuck target duration coefficient and catch BehindLiveWindowExceptions properly #7661

    Fixed

    • Fixed order of local search results #7491
    • Respect cutouts when playing in MultiWindow #7451
    • Fixed hashtags that use non-English characters. #7556
    • Fixed readme link #6855
    • Fixed view of sub-channel icon when not in use #7582
    • Fixed search not accepting key input after closing player overlay #7607
    • Load full stream info before using a stream, fixing empty fields in play queue #7036
    • Fixed crash when sharing a playlist which is loading #7662
    • Workaround: Set recovery before switching player #7668, #7852
    • Added app icon to fastlane metadata #7672
    • Always show playing in background/popup toast #7614, reverting #7224 and #7568
    • Fixed first item always played in the play queue when reloading play queue manager #7693
    • Load uploader url when showing channel details from play queue #7538
    • Fixed crash when long-pressing stream while player is starting #7704

    Development

    • Bump ktlint, Checkstyle, Java version #7500 ⚠️ The app requires now Java 11 to be built
    • Update/Fix "Get it on F-Droid" #7498
    • Updated a bunch of libraries #7499
    • Readd sonar CI job #7552
    • Small improvements to code quality and readability #7562
    • Updated NewPipeExtractor #7589
    • CI: Upload test-report when an error occurs #7636
    • Replaced JUnit asserts with AssertJ in HistoryRecordManagerTest #7654
    • Fixed false warning #7648
    • Add traditional Chinese README #7618
    • Add Polish README #7694
    • Some untranslatable string improvements #7317
    • Ensure order of search history entries in tests #7670
    • Sync weblate #7689
    • Fixed some gradle deprecations #7678
    • Improved HistoryRecordManager tests #7700
    • Moved translated READMEs to subfolder #7784
    • Updated FUNDING.yml #7682
    • Small changes to license section of README #7710
    • Added some stuff to paths-ignore #7803
    Source code(tar.gz)
    Source code(zip)
    NewPipe_v0.22.0.apk(9.10 MB)
  • v0.21.16(Feb 1, 2022)

  • v0.21.15(Dec 23, 2021)

  • v0.21.14(Dec 11, 2021)

    🔴 🔴 🔴 Read the blog post for more details 🔴 🔴 🔴

    New

    • Add a "add to playlist" option in the share menu #7194
    • Add "Check for updates" button in update settings #7296
    • Add support for y2u.be links #7304
    • Support PeerTube short links #7353
    • Show action to mark stream as watched all long press menus #7160

    Improved

    • Fix clicking timestamp shows Toast "Playing in popup mode" #7202
    • Check if background player already active before displaying player toast #7224
    • Added the 'Show Channel Details' menu item to the Queue long press menu #7222
    • Use custom TextViews and EditTexts in all XML resources #7061 #7348
    • [Feed] Save "Show watched items" toggle's status #7370
    • Simple playback-speed-controls improvements #7363
    • Rework feed new items handling #7050

    Fixed

    • Fixed shuffle button opacity UI bug #6844
    • Prevent automatic replay after returning from background #7381
    • [YouTube] Likes and dislikes extraction #7467 / TeamNewPipe/NewPipeExtractor#753

    Localization

    • Updated translations #7474

    Development

    • Update AndroidX Media library to 1.4.x #7148
    • Deduplicated drawer code in MainActivity #7215
    • Use the correct TAG in NavigationHelper #7196
    • Clean up .gitignore files #7264
    • Remove deprecated setUserVisibleHint #7265
    • Update pager workaround code to Fragment 1.3.6 #7149
    • Update some libraries #7263
    • Update RecyclerView & Groupie libraries #7261
    • Gradle: Replaced deprecated 'with' with 'using' #7395
    • Update ExoPlayer to 2.14.2 #7005 and #7408
    • Remove JCenter #5843
    • Add gradle wrapper Sha256 #7418 and #7442
    • Use DefaultLoadcontrol #7406
    • Some code cleanup(s) #7412
    • Better player error handling #7142
    Source code(tar.gz)
    Source code(zip)
    NewPipe_v0.21.14.apk(8.65 MB)
  • v0.21.13(Oct 21, 2021)

  • v0.21.12(Oct 12, 2021)

  • v0.21.11(Oct 11, 2021)

    :red_circle: :red_circle: :red_circle: Read the blog post containing all info you need to know :red_circle: :red_circle: :red_circle:

    New

    • Add a play next button to the long press menu #6872
    • Add YouTube shorts path prefix to intent filter #7181

    Improved

    • Swap seekbar position with player buttons in Queue screen #6824
    • Make all buttons in player have selectable item background borderless #7042
    • Expand minimized player buttons clickable area #7177
    • Search for updates immediately when enabling automatic update checks on GItHub builds #6980
    • Added Tubus (Invidious) and EduVid (PeerTube) #6642

    Fixed

    • Fixed Settings import #7169
    • Various fixes related to MediasessionManager #7166
    • Disabled media tunneling on RealtekATV #7178
    • Fixed seekbar not completed after video end #7176
    • Fixed crash on missing title when sharing livestream #7213

    Development

    • Updated Android Gradle Plugin to version 7.0.2 #6974 ⚠️ Now requires Java 11 to build
    • Allow passing in package name suffix through CLI #6420
    • Extracted repeated variable to a constant #7132
    • Removed deprecated preferenceTheme style attribute #7156
    • Regenerated some drawables to their latest design #7152
    • Updated Groupie library to 2.9.0 #7150
    • Fixed typos in READMEs #7184
    Source code(tar.gz)
    Source code(zip)
    NewPipe_v0.21.11.apk(8.37 MB)
  • v0.21.10(Sep 20, 2021)

    🔴 🔴 🔴 Read the blog post for more details 🔴 🔴 🔴

    New

    • Added Show Channel Details where it's missing #6919
    • Allow choosing which types of search suggestions to show #3546
    • Added support for CSV+ZIP subscriptions (Google Takeout) #6882
    • Show popup menu when long pressing items in the video player's play queue #6955
    • Added option to directly open fullscreen when the main player starts #5459
    • Added darker splash screen for OS dark theme #7055

    Improved

    • Changed dark theme colors to darker variant #6244, #7085
    • Replace UniversalImageLoader with Picasso #5928
    • Change "not available" image from PNG to vector format #6917
    • Provide mime type to file picker to gray out unselectable files #6820
    • Explain how to remove tab from main page #6965

    Fixed

    • Catch errors while processing timestamp-links #6851
    • Added wrapping settings titles to the next line #6952
    • Re-add sharing of the content name with the "Share" command #6957
    • Fixed double tapping the replay button #7014
    • [Android TV] Fix long seekbar jumps when using a DPad #6985
    • Close audio effect control session properly #6993
    • Fixed some inconsistencies in the error panel #7004
    • Change player progress bar update from 500 ms to 1 s #7071
    • Fixed OnErrorNotImplemeneted crashes when trying to play in popup or getting search suggestions #7056
    • Fixed toggeling description visibility while a video detail is shown #7056
    • Fixed restarting not working properly #7068

    Development

    • Added gradle parameter to skip formatKtLint and use in CI #6858
    • Using Eclipse temurin in GH actions #6995
    • Use ExoPlayer default values for buffers #6515
    • Use PackageInfoCompat.getSignatures(). #6634
    • Fixed build problems and updated kotlin #6986
    • Using integrated cache in actions/setup-java #7002

    Translation

    • Use custom cancel string everywhere #6848
    • Added plural forms for download related strings #6930
    • Reword part of the bug report template #6990
    • Never use android.R.strings and remove unused add string #7024
    Source code(tar.gz)
    Source code(zip)
    NewPipe_v0.21.10.apk(8.42 MB)
  • v0.21.9(Aug 23, 2021)

    🔴 🔴 🔴 Read the blog post for more details 🔴 🔴 🔴

    New

    • Added player seekbar thumbnail preview #6434
    • Added comments disabled functionality #6483
    • Added ability to mark a feed item as watched #6773 #6956
    • Show hearts in comments #6741

    Improved

    • Improved metadata layout, better tags accessibility #6463
    • Various improvements to the player (e.g. faster closing) #6566
    • Apply service theme to UI components #6456 #6771 #6847

    Fixed

    • Made the thumbnail in the minimized player visible again #6616
    • Fixed 'Unrecoverable player error occurred' when rotating device while playing a video #6503
    • Fixed duplicate items in queue causing endless buffering #6712
    • Delete pending missions with invalid storage fixing a crash when starting a download #6721
    • Prevent ReCAPTCHA webview from keeping YouTube loaded in background #6733
    • Fixed NullPointerException when checking if storage exists #6778
    • Disabled feed click events while refresh overlay is shown #6550
    • Fixed channel item span count for SubscriptionFragment #6814

    Development

    • Upgraded to Gradle 7.1.1 #6538
    • Updated some libraries #6540 #6702
    • Specify emulator-build version in CI job fixing emulator build #6560
    • Remove option to immediately commit pref changes on import #6531
    • Fix API level 29 from Android CI tests #6678 #6715
    • Use GestureDetectorCompat #6637
    • Added instrumented tests for LocalPlaylistManager.createPlaylist #5531 #6706
    • Bumped compileSdkVersion to 30 #6654
    • Fixed some build warnings #6688
    • Added a Kotlin section in CONTRIBUTING.md #6659
    • Use Kotlin methods in LicenseFragment #6675
    • Use WindowInsetsCompat's getInsets() method #6689
    • Consolidate edittext alert dialogs into one common layout #6720
    • Fixed deprecated fill_parent attributes #6782
    • Check formatting of kotlin files in CI #6808
    • Updated some AndroidX libraries #6719
    • Use NotificationChannelCompat #6633
    Source code(tar.gz)
    Source code(zip)
    NewPipe_v0.21.9.apk(8.63 MB)
  • v0.21.8(Aug 3, 2021)

    :arrow_right: Blog post for this release

    New

    • [PeerTube] Support livestreams TeamNewPipe/NewPipeExtractor#661

    Fixed

    • [YouTube] Fix buffering and throttling by decoding n parameter in stream URLs TeamNewPipe/NewPipeExtractor#683 TeamNewPipe/NewPipeExtractor#696
    • [YouTube] Fix comments extraction and more improvements TeamNewPipe/NewPipeExtractor#604
    • [YouTube] Fix crashes with disabled comments TeamNewPipe/NewPipeExtractor#652
    • [YouTube] Fix music search TeamNewPipe/NewPipeExtractor#699
    Source code(tar.gz)
    Source code(zip)
    NewPipe_v0.21.8.apk(8.65 MB)
  • v0.21.7(Jul 20, 2021)

  • v0.21.6(Jul 14, 2021)

    :arrow_right: Blog post for this release

    New

    • Long press on player share button to copy url to clipboard #6436
    • Added "Open website" button to WebView in license fragment #6314
    • Recognize timestamps and hashtags in description #5523
    • Added manual tablet mode setting #6059
    • Added ability to hide played items in a feed #3371

    Improved

    • Support Storage Access Framework properly #5415
    • Better error handling of terminated channels #5876
    • Use constraint layout for play queue item #6443
    • The Android share sheet for Android 10+ users now shows the content title and other improvements #5523
    • Update Invidious instances and support Piped links #6557

    Fixed

    • Dismiss choice dialog in onStop() to avoid a leaked window Exception: #6504
    • Don't enable SAF on Fire TV #6516
    • Fix crash when connecting to a Bluetooth device #6570
    • Fix crash when using Repeat Button in tablet layout #6622

    Translation

    • Fixed Simplified Chinese Plural #6545
    • Updated translations

    Development

    • Convert the abstract class DAOs to interfaces #5462
    • Resolve Tabs style checks #6346
    • Update Room to 2.3.0 #6313
    • Replace the System.exit calls with getActivity.finishAffinity() #6495
    • Update AndroidX Fragment to 1.3.4 #6394 #6558
    • Annotate some overridden methods and parameters as NonNull #6528
    • Refactoring by Android Studio #6556
    • Comment out test-android CI job #6562
    • Ask for screenshots/video of UI changes in PR template #6539
    Source code(tar.gz)
    Source code(zip)
    NewPipe_v0.21.6.apk(8.65 MB)
  • v0.21.5(Jun 17, 2021)

  • v0.21.4(Jun 8, 2021)

    :arrow_right: Blog post for this release

    New

    • Show content metadata below the description #5946
    • Added "Show channel details" option in remote (non-local) playlists #6309
    • Added "Open in browser" option to long-press menu #6280

    Improved

    • Updated translations

    Fixed

    • Removed the option to download channels or playlists from the share menu #6385
    • Fixed empty fragment text not centered when text longer than one line #6387
    • Fixed unwanted rich text formatting when pasting into the search field #6353
    • Fixed error handling in subscribe() in DownloadDialog #6118
    • Fixed channel descriptions being out of the visible area in item lists #6410
    • Fixed rotation crash on video detail page #6242
    • Fixed and improve setting import and export paths #6402
    • Fixed playback speed not being updated in PlayQueueActivity #6421
    • Fixed Play with Kodi button in Player always prompts to install Kore #6429
    • [Bandcamp] Fixed intent filters for some URLs #6373
    • [YouTube] Fixed broken likes in comments #6337
    • Hide queue duration when displaying segment panel #6442

    Development

    • Use AdoptOpenJDK instead of Zulu in GitHub actions #6360
    • Test and clean up PlayQueue #6345
    • Updated Junit (f1bc4f5c20fd509e511cf0eb609eefb21402eb1c) and library for desugaring (6956d16f0e7a25a026c274d3db1ee639dde48228)
    • Upgrade PrettyTime to 5.0.1 #6414
    • Small code improvements #6430
    Source code(tar.gz)
    Source code(zip)
    NewPipe_v0.21.4.apk(8.46 MB)
  • v0.21.3(May 28, 2021)

    :arrow_right: Blog post for this release

    New

    • Allow installation on external storage #6037
    • Added debug option to disable media tunneling #6288

    Improved

    • Remove extra newlines in strings #6274
    • [PeerTube] Added workaround for HLS streams #6307
    • Persistent backup/import location #6319

    Fixed

    • Only show 'download has started' toast when download is started #6139
    • Do not set reCaptcha cookie when there is no cookie stored #5997
    • Dismiss previous snackbars when deleting downloads #5671
    • [Player] Improve cache performance by fixing fragmentSize is below the minimum warning #6238
    • [Player] Fixed player not automatically playing #6266
    • [Player] Fixed stuttering on Lineage OS by downgrading ExoPlayer to 2.12 #6294
    • Fixed trying to delete object not in list #6127
    • Fix ErrorActivity actionbar back button not working #6312

    Development

    • Replaced if/else with switch in ErrorActivity #6109
    • Use Animator.addListener() extension. #6152
    • Fix some warnings #6189
    • Update actions/setup-java to v2 #6079
    • Minor code improvements #6308
    Source code(tar.gz)
    Source code(zip)
    NewPipe_v0.21.3.apk(8.43 MB)
  • v0.21.2(Apr 26, 2021)

    :arrow_right: Blog post for this release

    New

    • Added channel details option to long-press menu #5851
    • Add functionality to rename Playlist Name from playlist interface #5982
    • Add queue time #6023

    Improved

    • Allow the user to pause while a video is buffering #5929
    • Improve colors in light theme, migrate to Android DayNight Theme #5927, #5995
    • Stream item improvements #6004
    • [Bandcamp] Add Radio stream segments #6051

    Fixed

    • Fixed overlapping fonts #5813
    • Fixed crash on tapping anywhere on video after long-pressing 'Popup' button #5813
    • Update URLs to HTTPS in READMEs #5942
    • Fixed some random NullPointerExceptions #5944
    • Fixed crash in history fragment when interacting with header controls and there are no videos in history #5971
    • Fixed hidden icon to the left of notification actions in settings #5935
    • Disabled media tunneling on Hi3798MV200 and cvt_mt5886_eu_1g fixing video playback on Formuler and Zephir Android TV devices #5969, #6024
    • NullPointerException on screen rotation during exit fix #5976
    • Fix NullPointerException: Attempt to get length of null array in MainActivity #5999
    • Fix display of channel details when it has no videos #5963
    • Fix ic_volume_up and ic_volume_off being black #6060
    • Fix invisible buffering / loading indicator in player #6161

    Development

    • Replace FrameLayout with FragmentContainerView where applicable #5882
    • Clean up unnecessary onCreate in settings fragments #5879
    • Update gradle wrapper #5866
    • About package internal revamp #5881
    • Update to ExoPlayer 2.13.2 #5856
    • Rearrange libraries #5867
    • Rename related streams to related items #5974
    • Migrate rest of AlertDialogs to AppCompat #6001
    Source code(tar.gz)
    Source code(zip)
    NewPipe_v0.21.2.apk(8.47 MB)
  • v0.21.1(Apr 10, 2021)

  • v0.21.0(Mar 26, 2021)

    :arrow_right: Blog post for this release

    New

    • Added new service: Bandcamp #3741 Many thanks to @fynngodau!

    Improved

    • Added setting to match device's theme (dark & black) #3632
    • Show improved error panel instead of annoying snackbar or crashing #5148
    • More information on why content is unavailable #5385
    • "pause/play" toggle when pressing hardware keyboard space button #5562
    • Added toast to inform the user that download started #5519
    • Updated User-Agent to resist fingerprinting #5649

    Fixed

    • Fixed very small thumbnails in video detail fragment when playing stream in background #5818
    • Fixed empty stream title in minimized player #5820
    • Fixed last resize mode not being restored correctly #5792

    Development

    • Updated prettytime #5230
    • Updated ExoPlayer to 2.12.3 #5457
    • Sonar workflow #5844
    • Disable sonar job #5906
    Source code(tar.gz)
    Source code(zip)
    NewPipe_v0.21.0.apk(8.30 MB)
  • v0.20.11(Mar 5, 2021)

    :arrow_right: Blog post for this release

    Improved

    • Removed License#contentUri #5544
    • Remove unnecessary concat with empty string #5543
    • Removed resizing text from popup player #5554

    Fixed

    • Fixed crash when reordering channel groups. #5718

    And all the fixes from NewPipeExtractor v0.20.11

    Development

    • Add crash button to debug settings #5672
    • Update okhttp from 3.12.12 to 3.12.13 #5589
    • Update Gradle plugin to version 4.1.2 #5581

    Translation

    • Add Northern Kurdish to language selector #5721
    Source code(tar.gz)
    Source code(zip)
    NewPipe_v0.20.11.apk(7.91 MB)
  • v0.20.10(Feb 14, 2021)

    New

    • [YouTube] Added support for chapters in player controls #5274
    • Added a secondary control panel and tabs to video detail fragment #4534 #5563
    • [PeerTube] Added sepia search #5257

    Improved

    • Disable restoring brightness if brightness gesture is disabled #5283
    • Update displayed licenses #5066
    • Disable sending metrics to Google when using Android System WebView #5337
    • Toggle play/pause with hardware space button in fullscreen player #5331
    • Add list item to play video on kodi #5310
    • VideoDetailFragment: Don't exit fullscreen on rotation in tablet UI #4939
    • Updated invidious instances list #5480
    • Reduce API requests for NewPipe update checks #5474

    Fixed

    • Fixed URLs with timestamps not being played #5317
    • Fixed null pointer exception in play button method #5301
    • Dynamically get package name, fixing issues with multiple NewPipes installed #5221
    • Fixed wrong speed indicator in queue activity #5371
    • Fixed crash when no default browser is set and improve share dialogs (on some devices) #5187 #5429 #5466

    Development

    • Merge player classes into a single one #5371 #5502
    • Use AndroidX Media compat in AudioReactor #5065
    • Use Objects.requireNonNull() #5254
    • Use view binding in VideoPlayer #5253 #5442
    • Make Localization.relativeTime testable #5358
    • Use view binding in fragments #4814 #5417 #5438 #5430 #5463
    • Switch to Groupie's view binding module #5029
    • Extract settings import #5225
    • Merge the two Constants files #5418
    • Remove APK testing section from PR template #5284
    • Re-add APK testing section to PR template #5465
    • Convert AnimationUtils functions to extension functions #5333
    • Convert ExceptionUtils methods to extension functions #4947
    • Checkout branch in CI process #5407
    • Set all default settings at the beginning #5503

    Localization

    • Fixed Somali language name #5376
    • Added Somali Readme #5383
    • Add Romanian README #5501
    • Added Brazilian Portuguese Readme #5397
    • Add Japanese translation of README #5468
    • Change "Export" to "Import" in Korean Readme instructions #5250
    • Update README.md to include installation methods other than F-Droid #5108
    Source code(tar.gz)
    Source code(zip)
    NewPipe_v0.20.10.apk(7.84 MB)
  • v0.20.9(Feb 13, 2021)

  • v0.20.8(Dec 27, 2020)

Owner
Team NewPipe
Developer of the NewPipe app
Team NewPipe
Library for easy work with Facebook, Twitter, LinkedIn and Google on Android

THIS PROJECT IS NO LONGER MAINTAINED, FEEL FREE TO FORK AND FIX IT FOR YOUR NEEDS There is also an Android Library that is being maintained, CloudRail

Anton Krasov 1k Dec 18, 2022
Easy social network authorization for Android. Supports Facebook, Twitter, Instagram, Google+, Vkontakte. Made by Stfalcon

SocialAuthHelper A library that helps to implement social network authorization (Facebook, Twitter, Instagram, GooglePlus, Vkontakte). Who we are Need

Stfalcon LLC 97 Nov 24, 2022
Youtube-dl for android

youtube-dl-android Android library wrapper for youtube-dl executable. Based on yausername's youtubedl-android but with ability to download binary file

Vikas 97 Dec 30, 2022
Twidere for Android

Twidere for Android Material Design ready and feature rich Twitter/Mastodon/Fanfou app for Android 4.1+. Enjoy Fediverse now! Twidere-Android is maint

Twidere Project 2.7k Dec 27, 2022
A Reddit client for Android

This is a Reddit client on Android written in Java. It does not have any ads and it features clean UI and smooth browsing experience.

null 2.6k Jan 9, 2023
An unofficial open source Reddit client for Android.

RedReader An unofficial, open source Android client for Reddit. Features Free and open-source Software - no ads/tracking Lightweight and fast Swipe po

null 1.4k Jan 7, 2023
Slide is an open sourced, ad free Reddit browser for Android

Slide Slide is an open source, ad free Reddit browser for Android. It is based around the Java Reddit API Wrapper. Slide is available on the Google Pl

Carlos Crane 1.7k Dec 27, 2022
Open-source alternative Instagram client on Android.

Instagram client; previously known as InstaGrabber.

Austin Huang 1.1k Jul 23, 2021
Kickstarter for Android. Bring new ideas to life, anywhere.

Welcome to Kickstarter's open source Android app! Come on in, take your shoes off, stay a while—explore how Kickstarter's native squad has built and c

Kickstarter 5.7k Jan 2, 2023
A light Sina Weibo client for Android

BlackLight 新浪微博客户端 请注意,当前BlackLight的开发已经被冻结,直到2016年高考后重启。 The development progress has been FROZEN till June 2016. 详细介绍以及Changelog请见Play商店。 https://pl

Paper Airplane Dev Team/纸飞机开发团队 884 Nov 22, 2022
Cnblogs Client for Android - Material Design

Cotable - Yet Another Cnblogs Client for Android Description Cotable = Code + Stable (The Paradise of Coder) The Android client of Cnblogs that named

Steve Lemuel 38 Feb 12, 2022
GitHub client for Android based on the abandoned official app

ForkHub ForkHub started off as a fork of the official Android app from GitHub, and has since seen lots of improvements. You can see a comprehensive li

Jon Ander Peñalba 2.8k Dec 28, 2022
GitHub Android application

Gitskarios Beta Testing Community Forum / Discussion Join the beta here Download it from Google Play! What is Gitskarios? Gitskarios is an Android App

Gitskarios 530 Dec 19, 2022
The Google I/O Android App

Google I/O Android App 2021 Update Due to global events, Google I/O 2020 was canceled and Google I/O 2021 is an online-only event, so the companion ap

Google 21.7k Jan 7, 2023
A handy Dribbble client for Android.

Notice Gunnner has been deprecated since Dribbble API v1 has been retired on March 26, 2018. Gunnner Gunnner1 is a handy Dribbble client for Android.

Egor Neliuba 60 Feb 12, 2022
📲 Android Application to track any user activity on Github built using the Github Developers API. Used Retrofit to fetch data and MVVM Architecture.

Github Visualizer ?? Android Application to track any user activity on Github built using the Github Developers Api. A sample application to demonstra

Dheeraj Kotwani 104 Dec 28, 2022
An Android client for Pump.io

Impeller - An Android client for Pump.io What is it A client for Pump.io, intended to provide a rich, platform-integrated experience. Runs on Android

Erin 46 Nov 1, 2022
Github client for Android

OctoDroid This application provides access to GitHub and lets you stay connected with your network Download Main features Repository List repositories

Azwan Adli 1.5k Dec 28, 2022
PHPHub for Android

创造不息,交付不止 相关项目 PHPHub-iOS by @Aufree PHPHub-Server by @NauxLiu PHPHub-Android by @Kelvin and @Xiaoxiaoyu PHPHub-UI by @Summer and @Aufree PHPHub-Web b

Kelvin 958 Dec 11, 2022