blackjack4494 / yt-dlc

media downloader and library for various sites.
The Unlicense
2.89k stars 364 forks source link

[Broken] 7plus not working for some episodes #28

Open mizmazz opened 3 years ago

mizmazz commented 3 years ago

Checklist

Verbose log

>youtube-dlc --verbose https://7plus.com.au/housos?episode-id=HOUS03-001
[debug] System config: []
[debug] User config: []
[debug] Custom config: []
[debug] Command-line args: ['--verbose', 'https://7plus.com.au/housos?episode-id=HOUS03-001']
[debug] Loading archive file None
[debug] Encodings: locale cp1252, fs utf-8, out utf-8, pref cp1252
[debug] youtube-dlc version 2020.10.26
[debug] Python version 3.8.6 (CPython) - Windows-10-10.0.18362-SP0
[debug] exe versions: ffmpeg git-2020-06-28-4cfcfb3, ffprobe git-2020-06-28-4cfcfb3
[debug] Proxy map: {}
[7plus] HOUS03-001: Downloading JSON metadata
ERROR: No video formats found; please report this issue on https://yt-dl.org/bug . Make sure you are using the latest version; type  youtube-dlc -U  to update. Be sure to call youtube-dlc with the --verbose flag and include its complete output.
Traceback (most recent call last):
  File "youtube_dlc\YoutubeDL.py", line 830, in extract_info
  File "youtube_dlc\extractor\common.py", line 532, in extract
  File "youtube_dlc\extractor\sevenplus.py", line 61, in _real_extract
  File "youtube_dlc\extractor\brightcove.py", line 551, in _parse_brightcove_metadata
  File "youtube_dlc\extractor\common.py", line 1359, in _sort_formats
youtube_dlc.utils.ExtractorError: No video formats found; please report this issue on https://yt-dl.org/bug . Make sure you are using the latest version; type  youtube-dlc -U  to update. Be sure to call youtube-dlc with the --verbose flag and include its complete output.

Description

7plus downloader no longer working for some episodes in particular the latest episode of Housos found here: https://7plus.com.au/housos?episode-id=HOUS03-001

Thanks :)

merval commented 3 years ago

It looks like the issue might be here: https://github.com/blackjack4494/yt-dlc/blob/ee69b02a4fb70b160e72a220a66aee7c1e3194f3/youtube_dlc/extractor/brightcove.py#L479 The structure of the json looks to have changed and logic surrounding this doesn't seem to match anymore.

I pulled the url listed for src on line 477, it's an m3u8 playlist. It never gets to the point of pulling the playlist because 'key_systems' is present and we pass over it. Upon further digging, 'key_systems' indicates a DRM lock on the media. It would probably be ideal to return an error stating it's DRM locked if we bump into that.

mizmazz commented 3 years ago

How am I able to get the url listed for src?

merval commented 3 years ago

I modified the code for testing and pulled the url out. It's a large m3u8 playlist.