Merge 1234033cf30bc3d90169ce58939ad210b5157681 into 3eb8d22ddb8982ca4fb56bb7a8d6517538bf14c6

This commit is contained in:
Paul Wise 2025-04-01 11:26:37 +02:00 committed by GitHub
commit 04018849b4
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 49 additions and 0 deletions

View File

@ -1064,6 +1064,7 @@ from .rtl2 import (
RTL2YouSeriesIE, RTL2YouSeriesIE,
) )
from .rtp import RTPIE from .rtp import RTPIE
from .rtrfm import RTRFMIE
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

View File

@ -0,0 +1,48 @@
from __future__ import unicode_literals
from .common import InfoExtractor
from ..compat import compat_urllib_parse_urlencode
from ..compat import compat_urlparse
from ..utils import ExtractorError
import re
class RTRFMIE(InfoExtractor):
_VALID_URL = r'https?://(?:www\.)?rtrfm.com.au/(?:shows/(?P<show1>[^/]+)|show-episode/(?P<show2>[^-]+)-(?P<date>[0-9]{4}-[0-9]{2}-[0-9]{2})/?)'
_SHOW_DATE_TITLE = r"window\.vm\.playShow\('([^']+)', *'([0-9]{4}-[0-9]{2}-[0-9]{2})', *'([^']+)'\)"
_RESTREAMS_URL = 'https://restreams.rtrfm.com.au/rzz'
_TESTS = [
{
'url': 'https://rtrfm.com.au/show-episode/breakfast-2020-06-01/',
'md5': '594027f513ec36a24b15d65007a24dff',
'info_dict': {
'id': 'breakfast-2020-06-01',
'ext': 'mp3',
'title': 'Breakfast with Taylah 2020-06-01',
},
}
]
def _real_extract(self, url):
show1, show2, date = self._VALID_URL_RE.match(url).groups()
webpage = self._download_webpage(url, show1 or show2)
match = re.compile(self._SHOW_DATE_TITLE).search(webpage)
if not match:
raise ExtractorError('Error getting the show, date & title', expected=True)
show, date, title = match.groups()
query = {'n': show, 'd': date}
query = compat_urllib_parse_urlencode(query)
url = compat_urlparse.urlparse(self._RESTREAMS_URL)
url = compat_urlparse.urlunparse(url._replace(query=query))
url = self._download_json(url, show, 'Downloading MP3 URL')['u']
return {
'id': '%s-%s' % (show, date),
'title': '%s %s' % (title, date),
'url': url,
'ext': 'mp3',
'release_date': 'date',
'description': self._og_search_description(webpage),
}