Skip to content
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

[YouTube] Fetch the ANDROID client for ended/post livestreams #864

Conversation

AudricV
Copy link
Member

@AudricV AudricV commented Jun 21, 2022

By default, the ANDROID client was only fetched for video contents, where it can be useful on ended/post livestreams, if the n parameter of the WEB client cannot be decrypted, to avoid throttling issues (because the WEB client was only used before for ended/post livestreams). With this PR, it is now fetched for ended/post livestreams by default too.

Note that this client doesn't return 720p streams where 720p60 streams are present, and these missing streams will so be still the ones from the WEB client.

It also provides an exclusive 48kbps M4A audio format in the adaptiveFormats array of the JSON player response (itag 139), like other mobile clients (which can be also extracted from the response of the DASH manifest URL returned into the WEB client player's response, but the DASH manifest is not used and parsed anymore by the extractor since #810 for performance purposes and to avoid NewPipe crashes due to TransactionTooLargeExceptions which would be created if DASH manifest parsing would be kept and used).

This change should have been made in #810, but I forgot to do so.

The ANDROID client was only fetched for video contents, where it can be useful on ended/post livestreams, if the n parameter of the WEB client cannot be decrypted, to avoid throttling issues (because the WEB client was only used before for ended/post livestreams).

It also provides an exclusive 48kbps M4A audio format in the adaptiveFormats array of the JSON player response, like other mobile clients (which can be also extracted from the response of the DASH manifest URL returned into the WEB client player's response, but the DASH manifest is not used by the extractor).

A note about non-fatality of fetching or parsing issues of the ANDROID and IOS clients has been added.
@AudricV AudricV added bug youtube service, https://www.youtube.com/ labels Jun 21, 2022
@Stypox Stypox merged commit 5219a70 into TeamNewPipe:dev Jun 24, 2022
@AudricV AudricV deleted the fetch-android-client-for-ended/post-livestreams branch June 24, 2022 13:15
litetex added a commit to litetex/NewPipeExtractor that referenced this pull request Jun 24, 2022
litetex added a commit to litetex/NewPipeExtractor that referenced this pull request Jun 24, 2022
litetex added a commit to litetex/NewPipeExtractor that referenced this pull request Aug 26, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug youtube service, https://www.youtube.com/
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants