Open ghost opened 7 years ago
Listing 38:57 does not mean anything. Can you watch complete 38:57 in browser? Provide MSO credentials.
Actually, there are multiple HLS playlists like nick.com, and youtube-dl does fetch the URL to all of them, but then proceeds to only download the first one:
--print-traffic
How do you correctly download a single video which only seems to be available in multiple segments? The patch below works:
diff --git a/youtube_dl/extractor/bet.py b/youtube_dl/extractor/bet.py
index d7ceaa85e..da4e17db9 100644
--- a/youtube_dl/extractor/bet.py
+++ b/youtube_dl/extractor/bet.py
@@ -66,15 +66,16 @@ class BetIE(MTVServicesInfoExtractor):
mgid = self._extract_mgid(webpage)
videos_info = self._get_videos_info(mgid)
- info_dict = videos_info['entries'][0]
+ entries = videos_info['entries']
- upload_date = unified_strdate(self._html_search_meta('date', webpage))
- description = self._html_search_meta('description', webpage)
+ for video in entries:
+ upload_date = unified_strdate(self._html_search_meta('date', webpage))
+ description = self._html_search_meta('description', webpage)
- info_dict.update({
- 'display_id': display_id,
- 'description': description,
- 'upload_date': upload_date,
- })
+ video.update({
+ 'display_id': display_id,
+ 'description': description,
+ 'upload_date': upload_date,
+ })
- return info_dict
+ return entries
But it gives me this warning:
WARNING: Extractor Bet returned a compat_list result. It needs to be updated.
Also, the titles for the segments have random non-sequential IDs at the end with no way to tell the proper order without the user manually using autonumber, and IMO they shouldn't have to for downloading a single video. (Ideally, youtube-dl should merge all those to a single video file, but that would be more complicated to implement.)
So, how do I properly handle this?
This behavior is the same on BET, VH1, and I'm sure many more. You have to manually grab the (usually) master.m3u8
files, and then I put all of those into a text file, and use the command to download that list: youtube-dl -a filename.txt
.
As a sidenote, this workaround isn't too bad. I open the page with developer tools open and recording, then I click through and begin playing each segment in the video. Then, use the filter in developer tools to search for master.m3u8
to find them all. They should be listed in sequential order. Then, if you have your text editor open, you can just right-click on each segment's .m3u8 file, and paste it onto a new line in the text editor. Make sure you have automnumber in your config file, though, otherwise it will just download each segment, and each time it will overwrite the previously downloaded file. Something like %(title)s - %(autonumber)02d.%(ext)s
should work.
Hope this helps!
Can this be fixed to work automatically?
FastHub doesn't support issue templates, sorry. I'm using the latest version and have searched for existing issues.
Log:
Link: http://www.bet.com/video/a-very-soul-train-special/r-and-b-groups/2017/full-show-hosted-by-sevyn-streeter-and-luke-james.html
The resulting file is 5 minutes and 40 seconds, despite the site listing it as 38 minutes 57 seconds. TV provider account is normally required but youtube-dl bypasses this for MTVN network sites.