-
Notifications
You must be signed in to change notification settings - Fork 375
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
[Findings] YouTube and HLS manifests on Apple clients (iOS and MacOS) #680
Comments
Some people said that they can have 4K 30fps on the iOS app: https://old.reddit.com/r/ios/comments/he47gi/4k_playback_in_ios_14_on_youtube/ Maybe we need to fill more parameters in the query in order to have it when using iOS client? You can also fetch using an Apple TV too because |
Note: The TVANDROID/TVAPPLE client is probably legacy/outdated, since:
|
Update: by adding a Thanks to @TheFrenchGhosty for having access to an iOS device on which the YouTube app is installed and for sending requests (especially the bodies) made by the app! Additional update: iOS clients don't get the same result: they get the same results as the Android/WEB/MWEB/TV_HTML5 (and other Android and web clients) clients for livestreams, with an HLS manifest (different of the one you can get with these clients). |
Ref: TeamNewPipe/NewPipeExtractor#680 (comment) Authored-by: coletdjnz
* Updated iOS clients to support 60fps formats (see: TeamNewPipe/NewPipeExtractor#680 (comment)) * General update of versions and keys of other clients Authored-by: coletdjnz
Related notes about YouTube HLS manifests:
|
When a YouTube livestream is running, we get on the website and the Android client adaptive formats, which are only playable with the DASH format. We are also getting an HLS master url, which returns streams on which you can only rewind 30 seconds (for rewindable livestreams, it depends on creator's decision). But on the iOS client, because of iOS capabilities, streams are returned as separated HLS urls on which you can rewind (with a different duration depending on the livestream), if the creator allows it. Here are some examples of the
streamingData
object returned for the iOS client in theplayer
endpoint of the Innertube API:Example 1
Example 2
Livestreams which have 1080p60 and 720p60 streams variants on the web and on the Android clients don't have a 60fps variant for the iOS client: only 30fps streams are returned for these qualities.
So, on livestreams, we can return, if we fetch the iOS response (similar to #562 but with
iOS
as theclientName
value):streamingData
object from the iOS JSON response)streamingData
object from the iOS JSON response)streamingData
object from the iOS JSON response)Returning all these qualities may be useful for some users, especially for users who want to stream 720/1080p qualities but not with 60 frames per second (to save data or to preserve performance on low-end devices, for example).
The text was updated successfully, but these errors were encountered: