ytdl-org / youtube-dl

Command-line program to download videos from YouTube.com and other video sites
http://ytdl-org.github.io/youtube-dl/
The Unlicense
132.02k stars 10.01k forks source link

Motor Trend on Demand #23317

Open tv21 opened 4 years ago

tv21 commented 4 years ago

Checklist

Example URLs

Description

This is Motor Trend's premium site but the above videos are free to watch. You can also join free for 14 days to watch TV shows from their network. This is not the same as their watch.motortrend.com site for which support is currently broken (same problem that seems to be affecting other Discovery Network channels), and I do not think the Discovery extractor would work on this site even if it were working, but my suspicion is it is completely different from the other site. In any case the site's URL is not currently recognized.

remitamine commented 4 years ago

for now, you can this command to download videos from this site using the last id in the URL(0_xxxxxxxx): youtube-dl -f '[protocol=m3u8_native]' kaltura:2093031:0_1j1evbz7

tv21 commented 4 years ago

Thank you!

tv21 commented 4 years ago

Is there any way to also specify the quality? For example if you do

youtube-dl -F kaltura:2093031:0_1j1evbz7

It shows several formats available but how would it be possible to combine one of those with '[protocol=m3u8_native]', or is that possible?

remitamine commented 4 years ago

the point is to select hls- prefixed formats, mp4- prefixed formats are not available. you can select by name(480p):

youtube-dl -f hls-719 kaltura:2093031:0_1j1evbz7

or by resolution:

youtube-dl -f '[protocol=m3u8_native][height=540]' kaltura:2093031:0_1j1evbz7

for other possibilities read https://github.com/ytdl-org/youtube-dl#format-selection.

tv21 commented 4 years ago

Okay, got it, thank you again.

danwald commented 4 years ago

I can take this one

danwald commented 4 years ago

@remitamine I always seem to get a timeout when running the testcase I wrote. I have increased the timeout but it doesn't work. Any ideas?

remitamine commented 4 years ago

pass skip_download to the test case params dict.

danwald commented 4 years ago

@remitamine I did, however its not the video that time out and fails, it the initial webpage. It works in the browser and using requests too but it not using the test case seen below. What am I messing up?

    _VALID_URL = r'https?://(?:www\.)?motortrendondemand\.com/(?:detail/)?(?:[\w-]+/)?(?P<id>[^/]+)/?(?:$|[?#])'
    _TEST = {
        'url': 'https://www.motortrendondemand.com/detail/the-story-of-ford-vs-ferrari/0_1j1evbz7/',
        'info_dict': {
            'id': '0_1j1evbz7',
            'ext': 'unknown_video',
            'title': 'The Story of Ford vs Ferrari',
            'description': 'md5:8c26e5433046a58967ed7e4ea2e6f484',
        },
        'params': {
            'skip_download': True,
        },
        'expected_warnings': ['Failed to download m3u8 information'],
    }
remitamine commented 4 years ago

for this extractor, you don't have to request motortrendondemand.com webpage at all, and the Kaltura extractor works fine(except that there is a need to extract only available formats), so most likely it's a problem with the extractor you're creating or your development envirenment.

FunctionalHacker commented 4 years ago

Hi, I would like to point out that with youtube-dl -f '[protocol=m3u8_native]' kaltura:2093031:$ID I only get 720p streams.