mirror of
https://github.com/yt-dlp/yt-dlp.git
synced 2025-01-30 17:14:03 +01:00
[ie/rtvslo] Fix expiration check
This commit is contained in:
parent
ccda63934d
commit
b70d3718fc
|
@ -1,4 +1,6 @@
|
|||
import datetime as dt
|
||||
import re
|
||||
from zoneinfo import ZoneInfo
|
||||
|
||||
from .common import InfoExtractor
|
||||
from ..utils import (
|
||||
|
@ -24,6 +26,9 @@ class RTVSLOIE(InfoExtractor):
|
|||
_API_BASE = 'https://api.rtvslo.si/ava/{}/{}?client_id=82013fb3a531d5414f478747c1aca622'
|
||||
SUB_LANGS_MAP = {'Slovenski': 'sl'}
|
||||
|
||||
_SVN_TIMEZONE = ZoneInfo('Europe/Ljubljana')
|
||||
_DATE_FMT_API = '%Y-%m-%d %H:%M:%S'
|
||||
|
||||
_TESTS = [{
|
||||
'url': 'https://www.rtvslo.si/rtv365/arhiv/174842550?s=tv',
|
||||
'info_dict': {
|
||||
|
@ -67,7 +72,7 @@ class RTVSLOIE(InfoExtractor):
|
|||
'series': 'Il giornale della sera',
|
||||
'timestamp': 1643743800,
|
||||
'release_timestamp': 1643745424,
|
||||
'thumbnail': 'https://img.rtvcdn.si/_up/ava/ava_misc/show_logos/il-giornale-della-sera_wide2.jpg',
|
||||
'thumbnail': 'https://img.rtvcdn.si/_up/ava/ava_misc/channel_logos/CAPO_wide2.jpg',
|
||||
'upload_date': '20220201',
|
||||
'tbr': 128000,
|
||||
'release_date': '20220201',
|
||||
|
@ -90,6 +95,14 @@ class RTVSLOIE(InfoExtractor):
|
|||
}, {
|
||||
'url': 'https://4d.rtvslo.si/arhiv/dnevnik/174842550',
|
||||
'only_matching': True,
|
||||
}, {
|
||||
'url': 'https://365.rtvslo.si/arhiv/tuji-filmi/175012380',
|
||||
'info_dict': {
|
||||
'id': '175012380',
|
||||
'ext': 'mp4',
|
||||
'title': '[video is expired]',
|
||||
},
|
||||
'expected_exception': 'ExtractorError',
|
||||
}]
|
||||
|
||||
def _real_extract(self, url):
|
||||
|
@ -147,8 +160,13 @@ def _real_extract(self, url):
|
|||
|
||||
if any('intermission.mp4' in x['url'] for x in formats):
|
||||
self.raise_geo_restricted(countries=self._GEO_COUNTRIES, metadata_available=True)
|
||||
if any('dummy_720p.mp4' in x.get('manifest_url', '') for x in formats) and meta.get('stub') == 'error':
|
||||
raise ExtractorError(f'{self.IE_NAME} said: Clip not available', expected=True)
|
||||
|
||||
expirationDate = meta.get('expirationDate')
|
||||
if expirationDate is not None and expirationDate != '':
|
||||
dt_svn_now = dt.datetime.now(self._SVN_TIMEZONE)
|
||||
dt_expires = dt.datetime.strptime(expirationDate, self._DATE_FMT_API).replace(tzinfo=self._SVN_TIMEZONE)
|
||||
if dt_svn_now > dt_expires:
|
||||
raise ExtractorError('This video has expired', expected=True)
|
||||
|
||||
return {
|
||||
'id': v_id,
|
||||
|
|
Loading…
Reference in New Issue
Block a user