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

Add all Itags #71

Open
ghost opened this issue Feb 15, 2018 · 17 comments
Open

Add all Itags #71

ghost opened this issue Feb 15, 2018 · 17 comments
Labels
enhancement New feature or request youtube service, https://www.youtube.com/

Comments

@ghost
Copy link

ghost commented Feb 15, 2018

Currently the NewPipeExtractor doesn't handle all Itags. Some because "it's not well supported in older devices" (e.g. Opus). Some because we "Don't add VideoOnly streams that have normal variants". Some because we don't have added HDR support. Some others are just missing. IMHO we should just add all Itags, since NewPipeExtractor is just an extractor. We should let the frontend (e.g. NewPipe most of the time) handle choosing the stream from the available ones. Also the FPS is often incorrect (30 instead of 24).

@theScrabi
Copy link
Member

Yes that sounds good.

@theScrabi theScrabi added the enhancement New feature or request label Feb 15, 2018
@ghost
Copy link
Author

ghost commented Jul 28, 2018

@TheAssassin suggested to automatically parse youtube-dl's list

@TheAssassin
Copy link
Member

... to benefit from their maintenance effort. I think this should be done during build, not during the runtime. The list won't be updated too often, I guess.

@theScrabi
Copy link
Member

I'm with @@TheAssassin here. I don't know how big that list is but we could copy it. ... Mabe even with code.

@TheAssassin
Copy link
Member

@theScrabi the idea is to have some script or so that generates Java source code from that list during builds. This way, the list is kept up to date.

The file can even be committed from time to time on changes. At linuxdeployqt, this was even necessary to allow for generating complete source bundles that can be built on systems like OBS, which don't allow network access during builds for various valid reasons.

@ghost
Copy link
Author

ghost commented Jul 28, 2018 via email

@TheAssassin
Copy link
Member

Well, this list might also be generated by calling such a command, and parsing the output.

@ghost
Copy link
Author

ghost commented Jul 28, 2018 via email

@TheAssassin
Copy link
Member

@wb9688 you just said youtube-dl -F provides the correct information. So why not parse the output of that command? Just download the latest version of youtube-dl, call it like that, and generate the Java code.

@ghost
Copy link
Author

ghost commented Jul 28, 2018 via email

@theScrabi
Copy link
Member

@TheAssassin: The thing is that not every video has every format, so we probably still need to maintain the what-ids-are-hdr list.

Thats the reason I would not do it full automatized, otherwhise we will end up with bugs and issues.

@theScrabi
Copy link
Member

@theScrabi
Copy link
Member

also we might want to speak about splitting codec (for audio and video) and container.

@TheAssassin
Copy link
Member

@TheAssassin: The thing is that not every video has every format, so we probably still need to maintain the what-ids-are-hdr list.

Thats the reason I would not do it full automatized, otherwhise we will end up with bugs and issues.

A good list of itags can be found here:
https://github.com/rg3/youtube-dl/blob/master/youtube_dl/extractor/youtube.py#L379

You must be kidding. See #71 (comment).

I still haven't got what the problem with the HDR tags is. I was told two contradictory versions by @wb9688: either the source code doesn't provide it but youtube-dl -F does, or the other way round.

@wb9688 can you please tell if either version would work for NewPipe?

@TheAssassin
Copy link
Member

@theScrabi as this is a semi-automatic process (the build tools generate the list, but some dev has to actually commit it, and I always read diffs before committing stuff), the chance for mistakes is quite small.

@ghost
Copy link
Author

ghost commented Aug 4, 2018

I still haven't got what the problem with the HDR tags is

@TheAssassin: We need to know which Itags are HDR, so we'll only play HDR videos on devices that support it, but the full list from youtube-dl doesn't contain the HDR ones (for example 337 is 2160p HDR), while youtube-dl -F does somehow (@theScrabi: do you know where they come from? DASH manifest?), which you can check with for example https://www.youtube.com/watch?v=WW2DKBGCvEs. (Btw we don't even have HDR support yet, though that shouldn't be a big change.)

@theScrabi
Copy link
Member

(Btw we don't even have HDR support yet, though that shouldn't be a big change.

Its a good idea to make the backend ready for that.

I don't know where they got the itags from. I used to take them from a website, but this is the most complete list I could find so far.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request youtube service, https://www.youtube.com/
Projects
None yet
Development

No branches or pull requests

3 participants