aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/yt_dlp_plugins
diff options
context:
space:
mode:
authorgarret <garret@airmail.cc>2024-11-01 09:10:15 +0000
committergarret <garret@airmail.cc>2024-11-01 09:10:15 +0000
commit8805fd0326aff58332c626107625e80a597b6e45 (patch)
treeb0250eb95d1ed7360ec8c40b3dbb88af0dc535be /yt_dlp_plugins
parente9655881313b9b7ca1e402a82f51bbeed8a81e04 (diff)
downloadyt-dlp-rajiko-8805fd0326aff58332c626107625e80a597b6e45.tar.gz
yt-dlp-rajiko-8805fd0326aff58332c626107625e80a597b6e45.tar.bz2
yt-dlp-rajiko-8805fd0326aff58332c626107625e80a597b6e45.zip
more right-thinking way of handling timefree 30
still hardcoded to not work though
Diffstat (limited to 'yt_dlp_plugins')
-rw-r--r--yt_dlp_plugins/extractor/radiko.py12
-rwxr-xr-xyt_dlp_plugins/extractor/radiko_time.py13
2 files changed, 12 insertions, 13 deletions
diff --git a/yt_dlp_plugins/extractor/radiko.py b/yt_dlp_plugins/extractor/radiko.py
index d12f203..6b8a4c3 100644
--- a/yt_dlp_plugins/extractor/radiko.py
+++ b/yt_dlp_plugins/extractor/radiko.py
@@ -492,9 +492,13 @@ class RadikoTimeFreeIE(_RadikoBaseIE):
start = times[0]
end = times[1]
now = datetime.datetime.now(tz=rtime.JST)
+ expiry_free, expiry_tf30 = end.expiry()
+ have_tf30 = False
- if end.expiry(False) < now:
+ if expiry_tf30 < now:
self.raise_no_formats("Programme is no longer available.", video_id=meta["id"], expected=True)
+ elif not have_tf30 and expiry_free < now:
+ self.raise_login_required("Programme is only available with a Timefree 30 subscription")
elif start > now:
self.raise_no_formats("Programme has not aired yet.", video_id=meta["id"], expected=True)
live_status = "is_upcoming"
@@ -701,9 +705,9 @@ class RadikoPersonIE(InfoExtractor):
now = rtime.RadikoTime.now(tz=rtime.JST)
- min_start = rtime.earliest_available(False)
- # we set the earliest time as the earliest we can get,
- # so, the start of the broadcast day 1 week ago
+ min_start = now - datetime.timedelta(days=30).broadcast_day_start()
+ # we set the earliest time as the earliest we can get (or at least, that it's possible to get),
+ # so, the start of the broadcast day 30 days ago
# that way we can get everything we can actually download, including stuff that aired at eg "26:00"
person_api_url = update_url_query("https://api.radiko.jp/program/api/v1/programs", {
diff --git a/yt_dlp_plugins/extractor/radiko_time.py b/yt_dlp_plugins/extractor/radiko_time.py
index b383098..d2084aa 100755
--- a/yt_dlp_plugins/extractor/radiko_time.py
+++ b/yt_dlp_plugins/extractor/radiko_time.py
@@ -36,16 +36,11 @@ class RadikoTime(datetime.datetime):
dt = datetime.datetime(date.year, date.month, date.day, 5, 0, 0, tzinfo=JST)
return dt
- def expiry(self, tf30):
- available_days = 30 if tf30 else 7
- return self.broadcast_day_end() + datetime.timedelta(days=available_days)
- # IF SOMETHING CHANGES HERE YOU NEED TO UPDATE ↓↓earliest_available↓↓ AS WELL!
+ def expiry(self):
+ free = self.broadcast_day_end() + datetime.timedelta(days=7)
+ tf30 = self.broadcast_day_end() + datetime.timedelta(days=30)
-
-def earliest_available(tf30):
- available_days = 30 if tf30 else 7
- return (RadikoTime.now(tz=JST) - datetime.timedelta(days=available_days)).broadcast_day_start()
- # IF SOMETHING CHANGES HERE YOU NEED TO UPDATE ↑↑expiry↑↑ AS WELL!
+ return free, tf30
class RadikoSiteTime(RadikoTime):