Compare commits

..

No commits in common. "ebedb7f01e575df89075d6aff56d249c92d85b5a" and "ddb255342d8fabc4b760673a267297235aec65ae" have entirely different histories.

View File

@ -1,9 +1,12 @@
import re
import json
from datetime import datetime, timezone
from .common import InfoExtractor from .common import InfoExtractor
from ..utils import format_field, parse_iso8601
class RinseFMIE(InfoExtractor): class RinseFMIE(InfoExtractor):
_VALID_URL = r'https?://(?:www\.)?rinse\.fm/episodes/(?P<id>[^/?#]+)' _VALID_URL = r'https?://(?:www\.)?rinse\.fm/episodes/(?P<id>.+)'
_TESTS = [{ _TESTS = [{
'url': 'https://rinse.fm/episodes/cameo-blush-01-09-2023-2300/', 'url': 'https://rinse.fm/episodes/cameo-blush-01-09-2023-2300/',
'md5': '9284abbd785e6b86e67d1cdca6224feb', 'md5': '9284abbd785e6b86e67d1cdca6224feb',
@ -12,8 +15,6 @@ class RinseFMIE(InfoExtractor):
'ext': 'mp3', 'ext': 'mp3',
'title': 'Cameo Blush - 01/09/2023 - 23:00', 'title': 'Cameo Blush - 01/09/2023 - 23:00',
'thumbnail': r're:^https?://.*\.JPG$', 'thumbnail': r're:^https?://.*\.JPG$',
'release_timestamp': 1693522800,
'release_date': '20230831'
} }
}] }]
@ -21,13 +22,24 @@ class RinseFMIE(InfoExtractor):
video_id = self._match_id(url) video_id = self._match_id(url)
webpage = self._download_webpage(url, video_id) webpage = self._download_webpage(url, video_id)
entry = self._search_nextjs_data(webpage, video_id)['props']['pageProps']['entry'] response = re.findall(r'<script[^>]*id\s*=\s*[\'"]__NEXT_DATA__[\'"][^>]*>(.*?)<\/script>', webpage, re.DOTALL)
info = json.loads(response[0])
entry = info['props']['pageProps']['entry']
track_id = entry['id']
title = entry['title']
date_obj = datetime.fromisoformat(entry['episodeDate'])
unix_timestamp = int(date_obj.replace(tzinfo=timezone.utc).timestamp())
url = entry['fileUrl']
thumbnail = "https://rinse.imgix.net/media/" + entry['featuredImage'][0]['filename']
return { return {
'id': entry['id'], 'id': track_id,
'title': entry.get('title'), 'title': title,
'url': entry['fileUrl'], 'url': url,
'vcodec': 'none', 'release_timestamp': unix_timestamp,
'release_timestamp': parse_iso8601(entry.get('episodeDate')), 'thumbnail': thumbnail
'thumbnail': format_field(
entry, [('featuredImage', 0, 'filename')], 'https://rinse.imgix.net/media/%s', default=None),
} }