forked from TeamNewPipe/NewPipe
-
Notifications
You must be signed in to change notification settings - Fork 1
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Use cronet for playback PR updated #41
Merged
ShareASmile
merged 141 commits into
ShareASmile:channel-tabs
from
AudricV:use-cronet-for-playback
Aug 25, 2023
Merged
Use cronet for playback PR updated #41
ShareASmile
merged 141 commits into
ShareASmile:channel-tabs
from
AudricV:use-cronet-for-playback
Aug 25, 2023
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
…lay queue is empty Related PR introducing the button: TeamNewPipe#8946
…ewCompat_setCompoundDrawableTIntList Use TextViewCompat.setCompoundDrawableTintList().
Update PrettyTime from 5.0.3 to 5.0.6 to include new localizations
Fix duplicate videos in feed group "All"
Add changelog for 0.24.1 (991)
…nd-update-extractor Support YouTube handles and update NewPipe Extractor
Currently translated at 100.0% (646 of 646 strings) Translated using Weblate (Turkish) Currently translated at 100.0% (646 of 646 strings) Translated using Weblate (Punjabi (Pakistan)) Currently translated at 18.4% (119 of 646 strings) Translated using Weblate (Slovak) Currently translated at 9.7% (7 of 72 strings) Translated using Weblate (Azerbaijani) Currently translated at 97.2% (70 of 72 strings) Translated using Weblate (Polish) Currently translated at 59.7% (43 of 72 strings) Translated using Weblate (Ukrainian) Currently translated at 100.0% (72 of 72 strings) Translated using Weblate (Turkish) Currently translated at 99.8% (645 of 646 strings) Translated using Weblate (German) Currently translated at 100.0% (646 of 646 strings) Translated using Weblate (Hungarian) Currently translated at 9.8% (7 of 71 strings) Translated using Weblate (Punjabi) Currently translated at 5.6% (4 of 71 strings) Translated using Weblate (Galician) Currently translated at 100.0% (646 of 646 strings) Translated using Weblate (Punjabi) Currently translated at 100.0% (646 of 646 strings) Translated using Weblate (Azerbaijani) Currently translated at 100.0% (646 of 646 strings) Translated using Weblate (Vietnamese) Currently translated at 99.6% (644 of 646 strings) Translated using Weblate (Portuguese) Currently translated at 100.0% (646 of 646 strings) Translated using Weblate (Italian) Currently translated at 100.0% (646 of 646 strings) Translated using Weblate (Hungarian) Currently translated at 100.0% (646 of 646 strings) Translated using Weblate (Asturian) Currently translated at 2.8% (2 of 71 strings) Translated using Weblate (Punjabi) Currently translated at 99.6% (644 of 646 strings) Translated using Weblate (Vietnamese) Currently translated at 98.9% (639 of 646 strings) Translated using Weblate (Chinese (Traditional, Hong Kong)) Currently translated at 99.5% (643 of 646 strings) Translated using Weblate (Italian) Currently translated at 100.0% (646 of 646 strings) Added translation using Weblate (English (Middle)) Added translation using Weblate (English (Old)) Added translation using Weblate (Sicilian) Added translation using Weblate (Arabic (Najdi)) Added translation using Weblate (Kashmiri) Added translation using Weblate (German (Low)) Added translation using Weblate (Aymará) Added translation using Weblate (Kazakh) Translated using Weblate (Bulgarian) Currently translated at 2.8% (2 of 71 strings) Translated using Weblate (Bengali) Currently translated at 90.5% (585 of 646 strings) Translated using Weblate (Punjabi) Currently translated at 99.6% (644 of 646 strings) Translated using Weblate (Azerbaijani) Currently translated at 100.0% (646 of 646 strings) Translated using Weblate (Lithuanian) Currently translated at 100.0% (646 of 646 strings) Translated using Weblate (Portuguese (Brazil)) Currently translated at 100.0% (646 of 646 strings) Co-authored-by: Agnieszka C <aga_04@o2.pl> Co-authored-by: Balázs Meskó <meskobalazs@mailbox.org> Co-authored-by: Enol P <enolp@softastur.org> Co-authored-by: Ergün Can Taş <erguntas1968@gmail.com> Co-authored-by: Gediminas Murauskas <muziejusinfo@gmail.com> Co-authored-by: Giovanni Donisi <giovannidonisi0701@gmail.com> Co-authored-by: Hosted Weblate <hosted@weblate.org> Co-authored-by: Ihor Hordiichuk <igor_ck@outlook.com> Co-authored-by: Lyudmil Borisov <lyuskoborisov@abv.bg> Co-authored-by: Marian Hanzel <marulinko@gmail.com> Co-authored-by: Nizami <nizamismidov4@gmail.com> Co-authored-by: Oğuz Ersen <oguz@ersen.moe> Co-authored-by: Ray <ray.cfu@protonmail.com> Co-authored-by: Rohan Deb Sarkar <rohandebsarkar+git@gmail.com> Co-authored-by: SC <lalocas@protonmail.com> Co-authored-by: ShareASmile <aapshergill@gmail.com> Co-authored-by: TXRdev Archive <lckphanaf9999@gmail.com> Co-authored-by: Thọ Bùi Nguyễn Hoàng <buitho061997@gmail.com> Co-authored-by: Vri 🌈 <weblate@vrifox.cc> Co-authored-by: Weblate <noreply@weblate.org> Co-authored-by: bgo-eiu <huyaqoob+toolforge@gmail.com> Co-authored-by: gallegonovato <fran-carro@hotmail.es> Co-authored-by: pjammo <adrianoghr@hotmail.it> Co-authored-by: zaioti <zaioti@tuta.io> Translate-URL: https://hosted.weblate.org/projects/newpipe/metadata/ast/ Translate-URL: https://hosted.weblate.org/projects/newpipe/metadata/az/ Translate-URL: https://hosted.weblate.org/projects/newpipe/metadata/bg/ Translate-URL: https://hosted.weblate.org/projects/newpipe/metadata/hu/ Translate-URL: https://hosted.weblate.org/projects/newpipe/metadata/pa/ Translate-URL: https://hosted.weblate.org/projects/newpipe/metadata/pl/ Translate-URL: https://hosted.weblate.org/projects/newpipe/metadata/sk/ Translate-URL: https://hosted.weblate.org/projects/newpipe/metadata/uk/ Translation: NewPipe/Metadata
…ueueButton Hide play queue button in VideoDetailsFragment when queue is empty
…nel-groups Fix inconsistent channel group list and items view mode
Release v0.24.1
Currently translated at 6.1% (40 of 646 strings) Translated using Weblate (Santali) Currently translated at 10.3% (67 of 646 strings) Translated using Weblate (Chinese (Traditional)) Currently translated at 63.8% (46 of 72 strings) Translated using Weblate (Arabic) Currently translated at 50.0% (36 of 72 strings) Translated using Weblate (Italian) Currently translated at 100.0% (72 of 72 strings) Translated using Weblate (Portuguese) Currently translated at 69.4% (50 of 72 strings) Translated using Weblate (Bulgarian) Currently translated at 4.1% (3 of 72 strings) Translated using Weblate (Chinese (Traditional, Hong Kong)) Currently translated at 16.6% (12 of 72 strings) Translated using Weblate (Norwegian Bokmål) Currently translated at 92.2% (596 of 646 strings) Translated using Weblate (Azerbaijani) Currently translated at 100.0% (646 of 646 strings) Translated using Weblate (Vietnamese) Currently translated at 99.6% (644 of 646 strings) Translated using Weblate (Swedish) Currently translated at 100.0% (646 of 646 strings) Translated using Weblate (Arabic) Currently translated at 100.0% (646 of 646 strings) Translated using Weblate (Romanian) Currently translated at 100.0% (646 of 646 strings) Translated using Weblate (Chinese (Traditional, Hong Kong)) Currently translated at 99.8% (645 of 646 strings) Translated using Weblate (Korean) Currently translated at 99.8% (645 of 646 strings) Translated using Weblate (Spanish) Currently translated at 100.0% (646 of 646 strings) Translated using Weblate (Punjabi) Currently translated at 100.0% (646 of 646 strings) Translated using Weblate (Turkish) Currently translated at 100.0% (646 of 646 strings) Translated using Weblate (Punjabi (Pakistan)) Currently translated at 18.4% (119 of 646 strings) Translated using Weblate (Slovak) Currently translated at 9.7% (7 of 72 strings) Translated using Weblate (Azerbaijani) Currently translated at 97.2% (70 of 72 strings) Translated using Weblate (Polish) Currently translated at 59.7% (43 of 72 strings) Translated using Weblate (Ukrainian) Currently translated at 100.0% (72 of 72 strings) Translated using Weblate (Turkish) Currently translated at 99.8% (645 of 646 strings) Translated using Weblate (German) Currently translated at 100.0% (646 of 646 strings) Translated using Weblate (Hungarian) Currently translated at 9.8% (7 of 71 strings) Translated using Weblate (Punjabi) Currently translated at 5.6% (4 of 71 strings) Translated using Weblate (Galician) Currently translated at 100.0% (646 of 646 strings) Translated using Weblate (Punjabi) Currently translated at 100.0% (646 of 646 strings) Translated using Weblate (Azerbaijani) Currently translated at 100.0% (646 of 646 strings) Translated using Weblate (Vietnamese) Currently translated at 99.6% (644 of 646 strings) Translated using Weblate (Portuguese) Currently translated at 100.0% (646 of 646 strings) Translated using Weblate (Italian) Currently translated at 100.0% (646 of 646 strings) Translated using Weblate (Hungarian) Currently translated at 100.0% (646 of 646 strings) Translated using Weblate (Asturian) Currently translated at 2.8% (2 of 71 strings) Translated using Weblate (Punjabi) Currently translated at 99.6% (644 of 646 strings) Translated using Weblate (Vietnamese) Currently translated at 98.9% (639 of 646 strings) Translated using Weblate (Chinese (Traditional, Hong Kong)) Currently translated at 99.5% (643 of 646 strings) Translated using Weblate (Italian) Currently translated at 100.0% (646 of 646 strings) Added translation using Weblate (English (Middle)) Added translation using Weblate (English (Old)) Added translation using Weblate (Sicilian) Added translation using Weblate (Arabic (Najdi)) Added translation using Weblate (Kashmiri) Added translation using Weblate (German (Low)) Added translation using Weblate (Aymará) Added translation using Weblate (Kazakh) Translated using Weblate (Bulgarian) Currently translated at 2.8% (2 of 71 strings) Translated using Weblate (Bengali) Currently translated at 90.5% (585 of 646 strings) Translated using Weblate (Punjabi) Currently translated at 99.6% (644 of 646 strings) Translated using Weblate (Azerbaijani) Currently translated at 100.0% (646 of 646 strings) Translated using Weblate (Lithuanian) Currently translated at 100.0% (646 of 646 strings) Translated using Weblate (Portuguese (Brazil)) Currently translated at 100.0% (646 of 646 strings) Co-authored-by: Agnieszka C <aga_04@o2.pl> Co-authored-by: Alex25820 <alexs25820@gmail.com> Co-authored-by: Balázs Meskó <meskobalazs@mailbox.org> Co-authored-by: Enol P <enolp@softastur.org> Co-authored-by: Ergün Can Taş <erguntas1968@gmail.com> Co-authored-by: GET100PERCENT <eraofphysics@yahoo.com> Co-authored-by: Gediminas Murauskas <muziejusinfo@gmail.com> Co-authored-by: Giovanni Donisi <giovannidonisi0701@gmail.com> Co-authored-by: Hoseok Seo <ddinghoya@gmail.com> Co-authored-by: Hosted Weblate <hosted@weblate.org> Co-authored-by: Ihor Hordiichuk <igor_ck@outlook.com> Co-authored-by: L-M-H <lars.magnus@herland.priv.no> Co-authored-by: Lyudmil Borisov <lyuskoborisov@abv.bg> Co-authored-by: Marian Hanzel <marulinko@gmail.com> Co-authored-by: Massimo Pissarello <mapi68@gmail.com> Co-authored-by: Nizami <nizamismidov4@gmail.com> Co-authored-by: Oğuz Ersen <oguz@ersen.moe> Co-authored-by: Prasanta-Hembram <Prasantahembram720@gmail.com> Co-authored-by: Preston Waters <masatox3@yahoo.com> Co-authored-by: Ray <ray.cfu@protonmail.com> Co-authored-by: Rohan Deb Sarkar <rohandebsarkar+git@gmail.com> Co-authored-by: SC <lalocas@protonmail.com> Co-authored-by: Sebi <stoican_sebi@yahoo.com> Co-authored-by: ShareASmile <aapshergill@gmail.com> Co-authored-by: TXRdev Archive <lckphanaf9999@gmail.com> Co-authored-by: Thọ Bùi Nguyễn Hoàng <buitho061997@gmail.com> Co-authored-by: Vri 🌈 <weblate@vrifox.cc> Co-authored-by: Weblate <noreply@weblate.org> Co-authored-by: bgo-eiu <huyaqoob+toolforge@gmail.com> Co-authored-by: gallegonovato <fran-carro@hotmail.es> Co-authored-by: pjammo <adrianoghr@hotmail.it> Co-authored-by: thami simo <simo.azad@gmail.com> Co-authored-by: zaioti <zaioti@tuta.io> Translate-URL: https://hosted.weblate.org/projects/newpipe/metadata/ar/ Translate-URL: https://hosted.weblate.org/projects/newpipe/metadata/ast/ Translate-URL: https://hosted.weblate.org/projects/newpipe/metadata/az/ Translate-URL: https://hosted.weblate.org/projects/newpipe/metadata/bg/ Translate-URL: https://hosted.weblate.org/projects/newpipe/metadata/hu/ Translate-URL: https://hosted.weblate.org/projects/newpipe/metadata/it/ Translate-URL: https://hosted.weblate.org/projects/newpipe/metadata/pa/ Translate-URL: https://hosted.weblate.org/projects/newpipe/metadata/pl/ Translate-URL: https://hosted.weblate.org/projects/newpipe/metadata/pt/ Translate-URL: https://hosted.weblate.org/projects/newpipe/metadata/sk/ Translate-URL: https://hosted.weblate.org/projects/newpipe/metadata/uk/ Translate-URL: https://hosted.weblate.org/projects/newpipe/metadata/zh_Hant/ Translate-URL: https://hosted.weblate.org/projects/newpipe/metadata/zh_Hant_HK/ Translation: NewPipe/Metadata
…oid 13+ Signed-off-by: dhruv <dhruvpatidar35@gmail.com> Co-authored-by: Tobi <TobiGr@users.noreply.github.com> Co-authored-by: AudricV <74829229+AudricV@users.noreply.github.com>
…tead This method is not needed anymore, as ShareUtils.copyToClipboard does almost the same thing (no label is set on the ClipData used to copy text, contrary to what Utility did, but using "text" as a ClipData label doesn't seem useful). It was used in MissionAdapter.handlePopupItem to copy the SHA1 or the MD5 of a file.
…ent_mutability Make PendingIntents immutable on Android 6.0 and later.
Set compileSdk and targetSdk to 33 (Android 13)
Update Desugaring to 1.1.8
For consistency with long click listeners, in VideoDetailFragment
…ideoDetailFragment Refactor VideoDetailFragment.
…ideoPlayerUi Refactor VideoPlayerUi.
…ng_while_seeking Seeking no longer pauses the played video
Tapping download on the long-press menu of queue items when the queue is shown inside the player would crash otherwise
Added option to download items in the queue
Fixes TeamNewPipe#9518: Crash fix when click "Add to playlist" while the current list is still loading
Update RxJava to 3.1.5.
…y-all-icon Added icon for "Play All"
…on_mode_ListAdapter Use ListAdapter in NotificationModeConfigAdapter.
…-for-audio-only-background-playback Support audio only background for services only supporting video streams
…methods Use new NPE UTF8 Utils methods
Update ExoPlayer to 2.18.2
…ver and increase network socket timeouts Use the Cronet network stack for playback using ExoPlayer's Cronet extension, instead of using Android's native network stack provided by HttpUrlConnection, which is Android device and OS version specific: this means that this network stack can be easily outdated and can contain some issues that are not present on Cronet or OkHttp. While OkHttp could be used as a network stack of ExoPlayer, it has been noticed when testing the usage of the OkHttp extension for playback that throttling issues with playback of YouTube contents may happen. That's the reason why Cronet is used instead, on which the issue does not happen, according to tests. The addition of this network library, embedded into the application, increases unfortunately the application size by around 10MB, because the Cronet library contains native code, shipped for all CPU architectures supported by Android's NDK (arm64-v8a, armeabi-v7a, x86 and x86_64). This doubles the release application size, due to the fact that the application is universal and not architecture dependant. QUIC is disabled on the Cronet engine, lazy-loaded (created only when the player is opened for the first time), in order to prevent sending to services the QUIC User-Agent ID which contains the application ID and version. This User-Agent ID is not editable by clients, but can be changed by using a custom Cronet implementation based on a custom cronet-common module, or by removing the original class responsible of generating the User-Agent ID and providing a custom implementation instead. As YoutubeHttpDataSource was a copy of ExoPlayer's DefaultHttpDataSource, based on Android's network stack, which is now unused, it has been removed and the modifications made for YouTube playback on streaming URLs are now made using a ResolvingDataSource Resolver, YoutubeDataSourceResolver. A workaround is used in it to prevent ExoPlayer sending the Range HTTP header. If usage of the range query parameter/path parameter is enabled and that it doesn't already exist as a URL parameter, this header is converted into a range query parameter or "path parameter". This may break playback if YouTube is serving streaming data with compression, which is unlikely to happen as it is inefficient, and that Cronet doesn't allow editing the `Accept-Encoding` HTTP header (see https://groups.google.com/a/chromium.org/g/net-dev/c/VbWPhyGrxD4/m/VC71PP3DAQAJ for details about how Cronet handles content encoding). This resolver adds support of YouTube videoplayback URLs using "path parameters" instead of query parameters. For example, https://YOUTUBE_VIDEO_HOST.com/videoplayback/PARAM_1/VALUE_1/PARAM_2/VALUE_2 is using "path parameters", when https://YOUTUBE_VIDEO_HOST.com/videoplayback?PARAM_1=VALUE_1&PARAM_2=VALUE_2 query parameters. "Path parameters" are used for streaming URLs of DASH and HLS manifests. This Resolver is compatible with multiple network stacks and is easier to maintain than the previous approach. Timeouts of network sockets connect and write operations have been increased from the default values (10 seconds) to 30 seconds. It is now also the case for playback, while this value where has been set where it was possible (connect and read operations, their default value is 8 seconds in ExoPlayer).
This class changes the QUIC User-Agent ID generated by Cronet, by removing the application name to allow usage of QUIC. The original class must be removed when building the app, in order to avoid duplicate classes which would break release builds or use the original class on debug builds.
Co-authored-by: AudricV <74829229+AudricV@users.noreply.github.com>
Also make sure that HTTP/2 is enabled, even if this should already be the case by default (same behavior for QUIC).
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
What is it?
Description of the changes in your PR
Before/After Screenshots/Screen Record
Fixes the following issue(s)
Relies on the following changes
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