1
0
mirror of https://github.com/l1ving/youtube-dl synced 2025-02-09 02:53:23 +08:00

Separates tv and radio in 2 classes

This commit is contained in:
Mario Refolo 2019-07-07 23:04:09 +02:00
parent ce7daceed6
commit 9d36667658
2 changed files with 60 additions and 32 deletions

View File

@ -979,7 +979,10 @@ from .rtp import RTPIE
from .rts import RTSIE from .rts import RTSIE
from .rtve import RTVEALaCartaIE, RTVELiveIE, RTVEInfantilIE, RTVELiveIE, RTVETelevisionIE from .rtve import RTVEALaCartaIE, RTVELiveIE, RTVEInfantilIE, RTVELiveIE, RTVETelevisionIE
from .rtvnh import RTVNHIE from .rtvnh import RTVNHIE
from .rtvs import RTVSIE from .rtvs import (
RTVSTVIE,
RTVSRADIOIE,
)
from .rudo import RudoIE from .rudo import RudoIE
from .ruhd import RUHDIE from .ruhd import RUHDIE
from .rutube import ( from .rutube import (

View File

@ -2,25 +2,11 @@
from __future__ import unicode_literals from __future__ import unicode_literals
from .common import InfoExtractor from .common import InfoExtractor
from ..utils import determine_ext
class RTVSIE(InfoExtractor): class RTVSTVIE(InfoExtractor):
_VALID_URL = r'https?://(?:www\.)?rtvs\.sk/(?:radio|televizia)/archiv/\d+/(?P<id>\d+)' _VALID_URL = r'https?://(?:www\.)?rtvs\.sk/(?:televizia)/archiv/\d+/(?P<id>\d+)'
_TESTS = [{ _TEST = {
# radio archive
'url': 'http://www.rtvs.sk/radio/archiv/11224/414872',
'md5': '134d5d6debdeddf8a5d761cbc9edacb8',
'info_dict': {
'id': '135320',
'ext': 'mp3',
'title': 'Ostrov pokladov 1 časť.mp3'
},
'params': {
'skip_download': True,
}
}, {
# tv archive
'url': 'http://www.rtvs.sk/televizia/archiv/8249/63118', 'url': 'http://www.rtvs.sk/televizia/archiv/8249/63118',
'md5': '85e2c55cf988403b70cac24f5c086dc6', 'md5': '85e2c55cf988403b70cac24f5c086dc6',
'info_dict': { 'info_dict': {
@ -32,7 +18,7 @@ class RTVSIE(InfoExtractor):
'params': { 'params': {
'skip_download': True, 'skip_download': True,
} }
}] }
def _real_extract(self, url): def _real_extract(self, url):
video_id = self._match_id(url) video_id = self._match_id(url)
@ -49,30 +35,69 @@ class RTVSIE(InfoExtractor):
data = self._download_json( data = self._download_json(
playlist_url, video_id, 'Downloading playlist') playlist_url, video_id, 'Downloading playlist')
try: data_media = data['clip']
data_media = data['clip']
except KeyError:
data_media = data['playlist'][0]
media_id = data_media['mediaid'] media_id = data_media['mediaid']
title = data_media['title'] title = data_media['title']
description = data_media.get('description') description = data_media.get('description')
thumbnail = data_media.get('image') thumbnail = data_media.get('image')
urldl = data_media['sources'][0]['src']
info = { formats = self._extract_m3u8_formats(
urldl, video_id, 'mp4',
entry_protocol='m3u8_native', m3u8_id='hls')
return {
'id': media_id, 'id': media_id,
'title': title, 'title': title,
'description': description, 'description': description,
'thumbnail': thumbnail, 'thumbnail': thumbnail,
'formats': formats
} }
url = data_media['sources'][0]['src']
if determine_ext(url) == 'm3u8': class RTVSRADIOIE(InfoExtractor):
info['formats'] = self._extract_m3u8_formats( _VALID_URL = r'https?://(?:www\.)?rtvs\.sk/(?:radio)/archiv/\d+/(?P<id>\d+)'
url, video_id, 'mp4', _TEST = {
entry_protocol='m3u8_native', m3u8_id='hls') 'url': 'http://www.rtvs.sk/radio/archiv/11224/414872',
else: 'md5': '134d5d6debdeddf8a5d761cbc9edacb8',
info['url'] = url 'info_dict': {
'id': '135320',
'ext': 'mp3',
'title': 'Ostrov pokladov 1 časť.mp3'
},
'params': {
'skip_download': True,
}
}
return info def _real_extract(self, url):
video_id = self._match_id(url)
webpage = self._download_webpage(url, video_id)
playlist_url = self._search_regex(
r'url = (["\'])(?:https?:)?(?://)(?P<url>(?:(?!\1).)+)\1', webpage,
'playlist url', group='url')
if not playlist_url.startswith("http"):
playlist_url = "http://" + playlist_url
data = self._download_json(
playlist_url, video_id, 'Downloading playlist')
data_media = data['playlist'][0]
media_id = data_media['mediaid']
title = data_media['title']
description = data_media.get('description')
thumbnail = data_media.get('image')
urldl = data_media['sources'][0]['src']
return {
'id': media_id,
'title': title,
'description': description,
'thumbnail': thumbnail,
'url': urldl
}