Open amaroklopcic opened 1 year ago
All the checklist items are always relevant!
... there are no actual playable songs/videos, since I'm trying to "extract" an empty playlist.
Not empty for me, nor for you since it had 268 items. Now I'm seeing 278 items.
This doesn't happen for me with the latest master code. The code that generates the DRM message is at l.2107-8 in my version and it depends on (i) no formats being found (ii) the streamingData.licenseInfos
member of the player response JSON being set. So you may want to update from the latest master or from the new nightly build repo (#31585).
The problem video t7-XtJ0O1o8
gives me this (UK):
...
[youtube] t7-XtJ0O1o8: Downloading webpage
ERROR: Video unavailable
The uploader has not made this video available in your country
...
visiting https://www.youtube.com/playlist?list=VLPLdZmvfk6Qqb7PFtsqGqNQ4804xSTX2dlF makes youtube show a weird home page view
As for https://www.youtube.com/watch?v=t7-XtJ0O1o8, that's a free with ads
video, and afaik they're always DRM protected :(
There's also https://github.com/yt-dlp/yt-dlp/pull/7396.
that issue only affects iOS-exclusive formats afaik
Does youtube-dl implement the android and ios clients, or only the web one?
Currently WEB
and TVHTML5_SIMPLY_EMBEDDED_PLAYER
(for age-gated content) are used. But the issue solved in the linked PR could apply to manifests in general, not just from YT, I think.
@dirkf I kinda agree, but like pukkandan said in the PR description:
In theory, it is possible for these types of master manifests to be used by other sites as well. But changing the DRM detection in core code directly will cause all DRM manifests to only be detected as "Maybe DRM", which is undesirable. So unless we find such cases in the wild, I am opting to make this change only for youtube and leave the general parsing as-is.
Also, that PR isn't really suitable to be enabled outside the youtube extractor, because --check-formats
currently only detects Apple fairplay DRM. That's why it's only enabled in the youtube extractor for the HLS protocol. I'm not sure if Widevine/Playready can be included in HLS streams, but afaik Youtube only uses HLS for iOS formats, more reason that that code likely isn't ready for other extractors
As for https://www.youtube.com/watch?v=t7-XtJ0O1o8 , that's a free with ads video, and afaik they're always DRM protected :(
I can confirm, by using
a) a US IP address (via VPN)
b) latest yt-dlp-nightly
and issuing:
yt-dlp --allow-u -F "t7-XtJ0O1o8"
FWIW, I don't think the original report "can hold any water" 😉 ...
I did load the linked playlist
https://www.youtube.com/playlist?list=VLPLdZmvfk6Qqb7PFtsqGqNQ4804xSTX2dlF
in my browser (with a US IP address) and, as pointed out already, it isn't "empty", the same is true as far as yt-dl[p]
is concerned... The
WARNING: Failed to download MPD manifest: HTTP Error 404: Not Found
is there on yt-dlp
, too, but probably refers to a 404 MPD corresponding to a specific yt-dl
client (?) ...
The first item of that playlist (t7-XtJ0O1o8
) indeed turns out to be DRM-only, so YoutubeIE
is just printing a correct ERROR report...
Checklist
Verbose log
Description
Hey guys :)
I didn't check checklist items 1 or 3 since they don't seem applicable to this small issue. The extractor is not broken and works and in this instance there are no actual playable songs/videos, since I'm trying to "extract" an empty playlist.
So this is more so to report potentially incorrect exception messages (since there isn't any DRM protected content in the playlist). It looks like the YouTube extractor makes an incorrect assumption and throws a
DownloadError: ERROR: This video is DRM protected
when trying to extract an empty public playlist.Here's a link to the empty public playlist for reference: https://www.youtube.com/playlist?list=VLPLdZmvfk6Qqb7PFtsqGqNQ4804xSTX2dlF
Apologies if this issue makes more sense as a feature request, I wasn't sure if this was intended behavior or not so thought I would post it as a bug report.