kebianizao 6 months ago committed by GitHub
commit 14691e5d3d
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -1071,7 +1071,13 @@ from .rtl2 import (
)
from .rtp import RTPIE
from .rts import RTSIE
from .rtve import RTVEALaCartaIE, RTVELiveIE, RTVEInfantilIE, RTVELiveIE, RTVETelevisionIE
from .rtve import (
RTVEALaCartaIE,
RTVELiveIE,
RTVEAudioIE,
RTVEInfantilIE,
RTVETelevisionIE,
)
from .rtvnh import RTVNHIE
from .rtvs import RTVSIE
from .ruhd import RUHDIE

@ -179,6 +179,87 @@ class RTVEALaCartaIE(InfoExtractor):
for s in subs)
class RTVEAudioIE(RTVEALaCartaIE):
IE_NAME = 'rtve.es:audio'
IE_DESC = 'RTVE audio'
_VALID_URL = r'https?://(?:www\.)?rtve\.es/(alacarta|play)/audios/[^/]+/[^/]+/(?P<id>[0-9]+)/'
_TESTS = [{
'url': 'https://www.rtve.es/alacarta/audios/a-hombros-de-gigantes/palabra-ingeniero-codigos-informaticos-27-04-21/5889192/',
'md5': 'ae06d27bff945c4e87a50f89f6ce48ce',
'info_dict': {
'id': '5889192',
'ext': 'mp3',
'title': 'Códigos informáticos',
'thumbnail': r're:https?://.+/1598856591583.jpg',
'duration': 349.440,
},
}, {
'url': 'https://www.rtve.es/play/audios/en-radio-3/ignatius-farray/5791165/',
'md5': '072855ab89a9450e0ba314c717fa5ebc',
'info_dict': {
'id': '5791165',
'ext': 'mp3',
'title': 'Ignatius Farray',
'thumbnail': r're:https?://.+/1613243011863.jpg',
'duration': 3559.559,
},
}, {
'url': 'https://www.rtve.es/play/audios/frankenstein-o-el-moderno-prometeo/capitulo-26-ultimo-muerte-victor-juan-jose-plans-mary-shelley/6082623/',
'md5': '0eadab248cc8dd193fa5765712e84d5c',
'info_dict': {
'id': '6082623',
'ext': 'mp3',
'title': 'Capítulo 26 y último: La muerte de Victor',
'thumbnail': r're:https?://.+/1632147445707.jpg',
'duration': 3174.086,
},
}]
def _extract_png_formats(self, audio_id):
png = self._download_webpage(
'http://www.rtve.es/ztnr/movil/thumbnail/%s/audios/%s.png' %
(self._manager, audio_id),
audio_id, 'Downloading url information', query={'q': 'v2'})
q = qualities(['Media', 'Alta', 'HQ', 'HD_READY', 'HD_FULL'])
formats = []
for quality, audio_url in self._decrypt_url(png):
ext = determine_ext(audio_url)
print(quality, audio_url, ext)
if ext == 'm3u8':
formats.extend(self._extract_m3u8_formats(
audio_url, audio_id, 'mp4', 'm3u8_native',
m3u8_id='hls', fatal=False))
elif ext == 'mpd':
formats.extend(self._extract_mpd_formats(
audio_url, audio_id, 'dash', fatal=False))
else:
formats.append({
'format_id': quality,
'quality': q(quality),
'url': audio_url,
})
self._sort_formats(formats)
return formats
def _real_extract(self, url):
audio_id = self._match_id(url)
info = self._download_json(
'https://www.rtve.es/api/audios/%s.json' % audio_id,
audio_id)['page']['items'][0]
title = info['title'].strip()
formats = self._extract_png_formats(audio_id)
return {
'id': audio_id,
'title': title,
'thumbnail': info.get('thumbnail'),
'duration': float_or_none(info.get('duration'), 1000),
'series': info.get('programInfo').get('title'),
'formats': formats,
}
class RTVEInfantilIE(RTVEALaCartaIE):
IE_NAME = 'rtve.es:infantil'
IE_DESC = 'RTVE infantil'

Loading…
Cancel
Save