Skip to content

Commit

Permalink
[rai] fix #9154
Browse files Browse the repository at this point in the history
  • Loading branch information
nixxo committed Feb 11, 2024
1 parent 540b682 commit 6f9ef78
Showing 1 changed file with 11 additions and 2 deletions.
13 changes: 11 additions & 2 deletions yt_dlp/extractor/rai.py
@@ -1,6 +1,7 @@
import re

from .common import InfoExtractor
from ..networking import HEADRequest
from ..utils import (
clean_html,
determine_ext,
Expand Down Expand Up @@ -91,15 +92,15 @@ def fix_cdata(s):
self.raise_geo_restricted(countries=self._GEO_COUNTRIES, metadata_available=True)

if not audio_only and not is_live:
formats.extend(self._create_http_urls(media_url, relinker_url, formats))
formats.extend(self._create_http_urls(media_url, relinker_url, formats, video_id))

return filter_dict({
'is_live': is_live,
'duration': duration,
'formats': formats,
})

def _create_http_urls(self, manifest_url, relinker_url, fmts):
def _create_http_urls(self, manifest_url, relinker_url, fmts, video_id):
_MANIFEST_REG = r'/(?P<id>\w+)(?:_(?P<quality>[\d\,]+))?(?:\.mp4)?(?:\.csmil)?/playlist\.m3u8'
_MP4_TMPL = '%s&overrideUserAgentRule=mp4-%s'
_QUALITY = {
Expand Down Expand Up @@ -166,6 +167,14 @@ def get_format_info(tbr):
'fps': 25,
}

# Check if MP4 download is available
try:
self._request_webpage(
HEADRequest(_MP4_TMPL % (relinker_url, '*')), video_id=video_id, note='Checking MP4 availability')
except ExtractorError as e:
self.to_screen(f'{video_id}: MP4 direct download is not available: {e.cause}')
return []

# filter out single-stream formats
fmts = [f for f in fmts
if not f.get('vcodec') == 'none' and not f.get('acodec') == 'none']
Expand Down

0 comments on commit 6f9ef78

Please sign in to comment.