<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet href="rss-style.xsl" type="text/xsl"?>
<rss version="2.0">
	<channel>
		<title>yt-dlp-rajiko release notes</title>
		<link>https://427738.xyz/yt-dlp-rajiko/</link>
		<description>Release notes for new yt-dlp-rajiko releases</description>
		<language>en-GB</language>
		<ttl>180</ttl>
		<item>
			<title>yt-dlp-rajiko 0.1.0 has been released</title>
			<link></link>
			<description>&lt;p&gt;This is simply when I first setup the package metadata. It is not actually usable.&lt;br/&gt;&lt;/p&gt;&lt;p&gt;This release:&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;Adds support for recording live streams and downloading timefree programmes, but does not yet work outside of tests.&lt;/li&gt;
&lt;/ul&gt;&lt;/p&gt;</description>
			<pubDate>Mon, 08 May 2023 15:24:46 +0100</pubDate>
		</item>
		<item>
			<title>yt-dlp-rajiko 0.2.0 has been released</title>
			<link></link>
			<description>&lt;p&gt;I had made a "breaking" change, so I incremented the version number.&lt;br/&gt;&lt;/p&gt;&lt;p&gt;This release:&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;Makes the BaseIE private, making the extractor actually usable outside of tests.&lt;/li&gt;
&lt;li&gt;Adds support for downloading page 1 of search pages.&lt;/li&gt;
&lt;li&gt;Adds sanity checks, and resiliency.&lt;/li&gt;
&lt;li&gt;Adds debug information in verbose mode.&lt;/li&gt;
&lt;li&gt;Fixes a bug where timefree programmes' availability timestamp and release timestamp were the wrong way round.&lt;/li&gt;
&lt;li&gt;Switches to storing cached data under a single "rajiko" namespace. ("breaking" change)&lt;/li&gt;
&lt;/ul&gt;&lt;/p&gt;</description>
			<pubDate>Tue, 30 May 2023 15:38:05 +0100</pubDate>
		</item>
		<item>
			<title>yt-dlp-rajiko 0.3.0 has been released</title>
			<link></link>
			<description>&lt;p&gt;After almost a year of neglecting it, I decided to increment the version number.&lt;br/&gt;&lt;/p&gt;&lt;p&gt;This release:&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;Adds support for the tracklist of songs played during the programme, via embedding as chapters.&lt;/li&gt;
&lt;li&gt;Adds support for multiple pages of search, and fixes bug where search via the history page did not work.&lt;/li&gt;
&lt;li&gt;Adds support for share links.&lt;/li&gt;
&lt;li&gt;Fixes a bug where stations with _ in the ID were not supported, e.g. FM_OKINAWA.&lt;/li&gt;
&lt;li&gt;Switches licence, from the Unlicense to BSD 0-Clause. This is effectively the same, but without the anti-copyright ideology.&lt;/li&gt;
&lt;li&gt;Fails more gracefully when the programme is not available.&lt;/li&gt;
&lt;li&gt;Caches station metadata, to prevent excess requests for information that doesn't actually change.&lt;/li&gt;
&lt;li&gt;Adds an extractor arg to control what device's streams are used.&lt;/li&gt;
&lt;li&gt;Adds support for downloading timefree streams that are distributed as-live.&lt;/li&gt;
&lt;li&gt;Adds support for live URL shorthand, e.g. https://radiko.jp/#CCL .&lt;/li&gt;
&lt;li&gt;Adds the radio station as uploader, allowing the station name to be embedded as the artist with --embed-metadata.&lt;/li&gt;
&lt;li&gt;Adds support for station button embeds, like the one in the corner on https://cocolo.jp/&lt;/li&gt;
&lt;li&gt;Adds more debug information in verbose mode.&lt;/li&gt;
&lt;li&gt;Adds a request for bug reports when token negotiation fails.&lt;/li&gt;
&lt;li&gt;Adapts to a breaking change from upstream yt-dlp.&lt;/li&gt;
&lt;/ul&gt;&lt;/p&gt;</description>
			<pubDate>Wed, 06 Mar 2024 04:07:12 +0000</pubDate>
		</item>
		<item>
			<title>yt-dlp-rajiko 0.3.1 has been released</title>
			<link></link>
			<description>&lt;p&gt;I noticed the significant spike in git clones following the previous release, and decided to increment the version number again.&lt;br/&gt;&lt;/p&gt;&lt;p&gt;This release:&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;Fixes a bug where the user agent used during token negotiation was botched due to using the wrong variable.&lt;/li&gt;
&lt;li&gt;Removes dependency on the secrets library (stdlib).&lt;/li&gt;
&lt;li&gt;Specifically links to the Github issues page when token negotiation fails.&lt;/li&gt;
&lt;/ul&gt;&lt;/p&gt;</description>
			<pubDate>Sat, 09 Mar 2024 05:42:07 +0000</pubDate>
		</item>
		<item>
			<title>yt-dlp-rajiko 1.0 has been released</title>
			<link>https://427738.xyz/yt-dlp-rajiko/dl/yt_dlp_rajiko-1.0-py3-none-any.whl</link>
			<description>&lt;p&gt;This is a purely administrative release. There are no changes to the actual plugin.&lt;br/&gt;However, releases are now actually distributed from the official website, rather than just having to pull off master.&lt;br/&gt;&lt;/p&gt;&lt;p&gt;This release:&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;Moves the main presence off github, to a dedicated webpage under my full control.&lt;/li&gt;
&lt;li&gt;Properly sets up the build system so that releases can actually be released.&lt;/li&gt;
&lt;/ul&gt;&lt;/p&gt;
&lt;p&gt;Please see &lt;a href="https://427738.xyz/yt-dlp-rajiko/#install"&gt;the homepage&lt;/a&gt; for initial installation instructions.&lt;/p&gt;</description>
			<pubDate>Tue, 02 Apr 2024 08:53:55 +0100</pubDate>
		</item>
		<item>
			<title>yt-dlp-rajiko 1.1 has been released</title>
			<link>https://427738.xyz/yt-dlp-rajiko/pip/yt-dlp-rajiko/yt_dlp_rajiko-1.1-py3-none-any.whl</link>
			<description>&lt;p&gt;This release just tweaks some things, mostly the packaging.&lt;br/&gt;Most likely you won't notice a difference, but it'll make my life a bit easier.&lt;br/&gt;&lt;/p&gt;&lt;p&gt;This release:&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;Removes yt-dlp from the package's dependencies. This lets you do things like installing yt-dlp with the binary and installing the plugin with pip, without pip installing an extra yt-dlp in the process. Note that yt-dlp is still required to actually use the plugin.&lt;/li&gt;
&lt;li&gt;Sets the &lt;code&gt;uploader_id&lt;/code&gt; field, for parity with the extractor from yt-dlp proper. This value was already available in the &lt;code&gt;channel_id&lt;/code&gt; field.&lt;/li&gt;
&lt;li&gt;Packages the API key as a separate (binary) file, instead of having a massive base64 blob in the extractor code. This &lt;i&gt;should&lt;/i&gt; work fine, but please get in touch if it doesn't work for you.&lt;/li&gt;
&lt;/ul&gt;&lt;/p&gt;
&lt;p&gt;If you use pip, you should be able to upgrade with &lt;code&gt;pip install yt-dlp-rajiko --upgrade --extra-index-url https://427738.xyz/yt-dlp-rajiko/pip/&lt;/code&gt;.&lt;br&gt;If you installed manually, you can download the updated &lt;code&gt;.whl&lt;/code&gt; from this post's link. The SHA256 checksum should be &lt;code&gt;d3fdefb4c5c1d5d64c58b3f805bf64ae95f3dd9f496742d214e16e33e677c600&lt;/code&gt;.&lt;/p&gt;</description>
			<pubDate>Sun, 07 Jul 2024 20:30:50 +0100</pubDate>
		</item>

		<item>
			<title>yt-dlp-rajiko 1.2 has been released / 1.2 をリリースしました</title>
			<pubDate>Wed, 22 Jan 2025 13:22:29 +0000</pubDate>
			<link>https://427738.xyz/yt-dlp-rajiko/pip/yt-dlp-rajiko/yt_dlp_rajiko-1.2-py3-none-any.whl</link>
			<description><![CDATA[
<p><b>TL;DR</b><br>
<ul>

<li>Added Timefree 30 support (you need an account, downloads are real-time)</li>
<li>Added support for https://radiko.jp/persons/ URLs, as seen in 出演者の追加情報 sidebar</li>
<li>Added an extractor arg to filter down to just key stations when using those /persons/ URLs</li>
</ul></p>

<p lang="ja"> <b>このリリースの変更点</b><br>
<ul>
<li>タイムフリー３０のログイン対応。ただし、ダウンロードはリアルタイムです。１時間の番組をダウンロードするには１時間かかります。</li>
<li>「出演者の追加情報」に含まれる https://radiko.jp/persons/ URLに対応</li>
<li><code>/persons/</code>のためのキー局をフィルタリングする extractor arg <code>--extractor-args rajiko:key-station-only</code> （例えば、オールナイトニッポンはニッポン放送だけ、JFN系列はTokyo FMだけ、など）</li>
</ul>
<b>１週間以上前の番組では、タイムフリー３０アカウントが必要です。</b><br>
必要ないときはログインしないでください。<br>
<br>
ごめんなさい、これが私の日本語の限界です🙇<br>
</p>

<hr>

<p>This release adds support for Timefree 30 programmes. If you have a Timefree 30 subscription, you can login with <code>--username</code> and <code>--password</code>, or cookies.<br>
Unfortunately it only works with streams that are delivered "as-live", so you can only download in real time (ie, a 1 hour programme will take 1 hour to save).<br>
<b>You need a timefree 30 account to download timefree 30 programmes.</b></p>

<p>You probably shouldn't login/pass cookies unless you're actually downloading a programme that needs it.<br>
It's all well and good if some anonymous person pops up in Hokkaido, then someone else in Tokyo a minute later, then another in Osaka after that...<br>
But if you're logged in, suddenly <i>you're</i> popping up in Hokkaido, then <i>you're</i> in Tokyo a minute later, then <i>you're</i> in Osaka -- it's a lot more suspicious.<br>
So it's best to stay logged out most of the time IMO.<br>
+ that way your download won't randomly take 3 hours because some old programmes turned up in the search results lol
</p>

<p>
This release also adds suport for https://radiko.jp/persons/ URLs, like <a href="https://radiko.jp/persons/33635">https://radiko.jp/persons/33635</a>.<br>
You can find these URLs... somewhere lol<br>
They're <i>meant</i> to show up in the right-hand sidebar on the player pages, but it seems a bit hit-or-miss whether they actually do.<br>
<img src="i/sidebar2.png"><br>
I think they're also used on news.radiko.jp<br>
<br>
Anyway, if/when you do find it, the page shows all the available programmes featuring that person - that's what'll be extracted.<br>
<img src="i/available.png"><br>
(for some reason the list doesn't show when I use the rajiko extension, but does when I use a VPN. the extractor works either way)<br>
</p>

<p>
Related to this, this release adds a new extractor arg: <code>--extractor-args rajiko:key-station-only</code>. <br>
It filters results down to just the <a href="https://en.wikipedia.org/wiki/Flagship_(broadcasting)">originating/"key" station</a>. - so for networked programmes like All Night Nippon,
you'll only get ニッポン放送, not all 36 member stations, for example.<br>
At the moment, this only works with the /persons/ URLs - but I suspect it'll become more useful as time goes on.<br>
</p>

<p>As a non-feature update, I added "mobile" as a possible value of the <code>X-Radiko-Connection</code> header during token negotiation.
(Possible values: <code>mobile</code>, <code>wifi</code>, chosen randomly every time)</p>

<p>that's all</p>

<hr>
<p>If you use pip, you should be able to upgrade with <code>pip install yt-dlp-rajiko --upgrade --extra-index-url https://427738.xyz/yt-dlp-rajiko/pip/</code>.<br>
If you installed manually, you can download the updated <code>.whl</code> from this post's link. The SHA256 checksum should be <code>4ee278fd138ebc305deeedc7e2a183afe91903607f28c513731d9e3888c3df11</code>.</p>
]]>
			</description>
		</item>
		<item>
			<title>yt-dlp-rajiko 1.3 has been released / 1.3 をリリースしました</title>
			<pubDate>Thu, 06 Mar 2025 08:08:39 +0000</pubDate>
			<link>https://427738.xyz/yt-dlp-rajiko/pip/yt-dlp-rajiko/yt_dlp_rajiko-1.3-py3-none-any.whl</link>
			<description><![CDATA[
<p>Quick hotfix release to un-break certain search URLs<br>
If you've not had issues with your search returning <b>HTTP Error 415: Unsupported Media Type</b>, then there is no need to upgrade.</p>

<p lang="ja">ある検索URLの失敗を解決するホットフィックスリリースです。<br>
検索で「<b>HTTP Error 415: Unsupported Media Type</b>」が発生しなければ、アップグレードの必要はありません。</p>

<hr>
<p>radiko's search API backend seems to have changed<br>
the site used to use "<code>cul_area_id</code>" in the search URLs, now it uses "<code>cur_area_id</code>" (with an r)<br>
and it outright rejects the old "<code>cul</code>" one with HTTP Error 415: Unsupported Media Type</p>

<p>probably doesn't affect you, but it did affect me, so I'm fixing it<br>
idk why they felt the need to break the old one</p>

<p>the site also started using a different search API endpoint, so I updated the extractor to match<br>
the old one still works, but probably better to change now then get caught out later</p>

<hr>
<p>If you use pip, you should be able to upgrade with <code>pip install yt-dlp-rajiko --upgrade --extra-index-url https://427738.xyz/yt-dlp-rajiko/pip/</code>.<br>
If you installed manually, you can download the updated <code>.whl</code> from this post's link. The SHA256 checksum should be <code>25776934bca2046e9c8e1f9cdad73dfa9801c7798d0e6748f974f315f5aad11f</code>.</p>
]]>
			</description>
		</item>
		<item>
			<title>yt-dlp-rajiko 1.4 has been released / 1.4 をリリースしました</title>
			<pubDate>Sun, 30 Mar 2025 17:20:01 +0100</pubDate>
			<link>https://427738.xyz/yt-dlp-rajiko/pip/yt-dlp-rajiko/yt_dlp_rajiko-1.4-py3-none-any.whl</link>
			<description><![CDATA[
<p>Changes in this release:</p>
<ul>
<li>Made search URLs <i>far</i> more efficient if you use a <code>--download-archive</code> -- it no longer needs to do a full extraction just to get the id</li>
<li>Added a workaround to download as-live formats (i.e. timefree30) quickly, by grabbing in 5 min chunks and putting them together at the end
(disable with <code>--extractor-args rajiko:no_as_live_chunks</code>)</li>
<li>Fixed an issue where downloads would fail entirely if the tracklist didn't load.<br>
I encountered this on the Music Awards Japan 2025 pop-up stream. I don't think it's an issue with real broadcast stations.</li>
</ul>
<p>I should note that the minimum version of yt-dlp is now <b>2025.02.19</b>.<br>
This is because the feature needed for the chunks workaround was only added recently.
</p>
<hr>
<div lang="ja">
<p>このリリースでは、</p>
<ul>
	<li><code>--download-archive</code>を使う方に、検索URLはもっと効率に過程する。</li>
	<li>タイムフリー３０のダウンロードを加速するワークアラウンドを追加しました。</li>
	<li>オンエアした曲のリストがなくなった場合の失敗を解決しました。</li>
</ul>
<p>yt-dlp <b>2025.02.19</b>以上が必要です。</p>
</div>
<hr>
<p>
If you use pip, you should be able to upgrade with <code>pip install yt-dlp-rajiko --upgrade --extra-index-url https://427738.xyz/yt-dlp-rajiko/pip/</code>.<br>
If you installed manually, you can download the updated <code>.whl</code> from this post's link.<br>
The SHA256 checksum should be <code>10944c2c95a271b9a469d8be055fe38f684b24f04cf288339e39a6270fbbc8cf</code>.<br>
</p>
]]>
			</description>
		</item>
		<item>
			<title>yt-dlp-rajiko 1.5 has been released / 1.5 をリリースしました</title>
			<pubDate>Sat, 24 May 2025 19:41:06 +0100</pubDate>
			<link>https://427738.xyz/yt-dlp-rajiko/pip/yt-dlp-rajiko/yt_dlp_rajiko-1.5-py3-none-any.whl</link>
			<description><![CDATA[
<p>Changes in this release:</p>
<ul>
<li>Made search URLs <i>far</i> more efficient if you use a <code>--download-archive</code> -- it no longer needs to do a full extraction just to get the id</li>
<li>Added a workaround to download as-live formats (i.e. timefree30) quickly, by grabbing in 5 min chunks and putting them together at the end
(disable with <code>--extractor-args rajiko:no_as_live_chunks</code>)</li>
<li>Fixed an issue where downloads would fail entirely if the tracklist didn't load.<br>
I encountered this on the Music Awards Japan 2025 pop-up stream. I don't think it's an issue with real broadcast stations.</li>
</ul>
<p>I should note that the minimum version of yt-dlp is now <b>2025.02.19</b>.<br>
This is because the feature needed for the chunks workaround was only added recently.
</p>
<hr>
<div lang="ja">
<p>このリリースでは、</p>
<ul>
	<li><code>--download-archive</code>を使う方に、検索URLはもっと効率に過程する。</li>
	<li>タイムフリー３０のダウンロードを加速するワークアラウンドを追加しました。</li>
	<li>オンエアした曲のリストがなくなった場合の失敗を解決しました。</li>
</ul>
<p>yt-dlp <b>2025.02.19</b>以上が必要です。</p>
</div>
<hr>
<p>
If you use pip, you should be able to upgrade with <code>pip install yt-dlp-rajiko --upgrade --extra-index-url https://427738.xyz/yt-dlp-rajiko/pip/</code>.<br>
If you installed manually, you can download the updated <code>.whl</code> from this post's link.<br>
The SHA256 checksum should be <code>8d8df258a9e9404cc9dde73330183db895905c18bf202875d5da5adf2876965a</code>.<br>
</p>
]]>
			</description>
		</item>
		<item>
			<title>yt-dlp-rajiko 1.6 has been released / 1.6 をリリースしました</title>
			<pubDate>Sun, 1 Jun 2025 17:15:30 +0100</pubDate>
			<link>https://427738.xyz/yt-dlp-rajiko/pip/yt-dlp-rajiko/yt_dlp_rajiko-1.6-py3-none-any.whl</link>
			<description><![CDATA[
<p>another hotfix release</p>

<p>This release fixes live recording (again)<br>
It also fixes a <code>SyntaxWarning</code> that occurs with Python 3.12+</p>
<hr>

<div lang=ja>
<p>またホットフィックスリリースです。</p>

<p>このリリースは（また）生配信の録音を修正します。<br>
Python 3.12以上で発生する<code>SyntaxWarning</code>も修正します。</p>
</div>

<hr>

<P>I had two choices for how to do the fix this time:</p>
<ul>
<li>add another special case, so that both live and timefree30 use the <code>pc_html5</code> streams (so really timefree7 is the exception...)</li>
<li>or, now that we have the chunks workaround, I could switch everything over to <code>pc_html5</code> and have done</li>
</ul>
<p>Both work, but I'm not sure I want to switch everything to the chunks workaround just yet.<br>
I've been using it and it works well, but I think probably the less it gets used the better. It's not exactly subtle...</p>

<p>
So for now I've gone with the more conservative choice of adding a special case, so that timefree (7) can keep working as it always has, without the workaround.<br>
But I have a plan for if the on-demand stream gets taken away, which is the important thing.
</p>

<p>I didn't catch the <code>SyntaxWarning</code> on my machine because I'm still running python 3.10. Apologies for that.<br>
oh well i'll update one day™
</p>
<hr>
<p id="upgrade-instructions">
If you use pip, you should be able to upgrade with <code>pip install yt-dlp-rajiko --upgrade --extra-index-url https://427738.xyz/yt-dlp-rajiko/pip/</code>.<br>
If you installed manually, you can <a href="https://427738.xyz/yt-dlp-rajiko/pip/yt-dlp-rajiko/yt_dlp_rajiko-1.6-py3-none-any.whl">download the updated <code>.whl</code></a>.<br>
The SHA256 checksum should be <code>1664969505785b76fb6b7c85a5b8f498039576d6abcdf136f3e007edcda3fcdd</code>.
</p>
]]>
			</description>
		</item>
		<item>
			<title>yt-dlp-rajiko 1.7 has been released / 1.7 をリリースしました</title>
			<pubDate>Mon, 9 Jun 2025 05:48:17 +0100</pubDate>
			<link>https://427738.xyz/yt-dlp-rajiko/pip/yt-dlp-rajiko/yt_dlp_rajiko-1.7-py3-none-any.whl</link>
			<description><![CDATA[
<p>seems like a new release every week, sorry about that</p>

<p>This release fixes a bug where Search URLs only returned one result.<br>
This bug was introduced in v1.5 / commit <code>a659b48a20b6241a68fc046c86c9ad0f71c9bd86</code>.</p>

<p>I didn't notice it at the time because I only download weekly programmes, so I only get one (useful) result anyway.<br>
We're still in the timefree30 window for v1.5's release date, so if you have an account you should be able to recover anything you missed.<br>
I'll try and improve my testing processes so something like this doesn't happen again in future.</p>

<p><s>expect a new release next week with the stuff i fixed after running the tests</s></p>

<hr>

<div lang="ja">
<p>毎週リリースですね…ごめんなさい<br>
バグフィックスリリースです。</p>

<p>このリリースでは、<br>
検索URLが１つの結果しか返さないバグを修正します。<br>
このバグはv1.5 / commit <code>a659b48a20b6241a68fc046c86c9ad0f71c9bd86</code>で導入しました。</p>

<p>私は普段、週刊誌番組だけをダウンロードしますので、いずれにしても１つの結果しか返さない。だからその時気づいてなかった。<br>
今はまだv1.5リリース日のタイムフリー３０期間以内ので、アカウントがあれば、逃した番組がまだ取り戻せると思います。<br>
今後はテストプロセスを改善していきたいと思います。</p>
</div>

<hr>
<p id="upgrade-instructions">
If you use pip, you should be able to upgrade with <code>pip install yt-dlp-rajiko --upgrade --extra-index-url https://427738.xyz/yt-dlp-rajiko/pip/</code>.<br>
If you installed manually, you can <a href="https://427738.xyz/yt-dlp-rajiko/pip/yt-dlp-rajiko/yt_dlp_rajiko-1.7-py3-none-any.whl">download the updated <code>.whl</code></a>.<br>
The SHA256 checksum should be <code>35a6d9371ac60ca526ebae519568b50a73c930acdb3fa6ad994b32d3c5d7c04a</code>.
</p>
]]>
			</description>
		</item>
		<item>
			<title>yt-dlp-rajiko 1.8 has been released / 1.8 をリリースしました</title>
			<pubDate>Sun, 14 Sep 2025 19:25:34 +0100</pubDate>
			<link>https://427738.xyz/yt-dlp-rajiko/dl/yt_dlp_rajiko-1.8.bundle.zip</link>
			<description><![CDATA[
<p>
This release adds support for radiko podcasts. Specifically, these types of URLs:<br>
<code>https://radiko.jp/podcast/channels/</code><br>
<code>https://radiko.jp/podcast/episodes/</code>
</p>
<p>
unfortunately radiko has fallen victim to modern software development<br>
As such, the <code><a href="https://github.com/yt-dlp/protobug">protobug</a></code> library is required to download more than the latest 20 episodes from podcast <code>/channels/</code> pages.<br>
If you install the plugin with pip, protobug should be installed along with it.<br>
If you install manually, you will need to get the <code>.bundle.zip</code> instead of the <code>.whl</code>.<br>
<small>ofc if you don't care about podcasts then it doesn't matter</small>
</p>

<p>It also adds support for https://radiko.jp/r_seasons/ programme pages.</p>

<p>
This release also extracts a different image for the live station thumbnail, now that the previous field has been replaced with a placeholder image.<br>
Specifically, it uses the small station logo you see above the programme on the site. It's not as good as what was there before, but it's something, at least.</p>

<p>This release also fixes an issue where some live streams couldn't be recorded as they did't work with FFmpeg.<br>
I've disabled the blacklist that was in use for live streams, so you should see more formats for these URLs.
</p>

<p>Also:<br>
yt-dlp-rajiko is now available on PyPi.<br>
This means you can now install/upgrade/add to requirements.txt/etc in the normal way, without the `--extra-index-url` bit.<br>
The custom index will still continue to work, so you shouldn't have to change anything if you don't want to.
</p>


<hr>
<div lang="ja">

<p>
このリリースでは、<br>
radikoポッドキャストに対応しました。<br>
とくに、こちらのURL<br>
https://radiko.jp/podcast/channels/〇〇<br>
https://radiko.jp/podcast/episodes/〇〇
</p>

<p>
残念ながら、radikoが現代ソフト開発の犠牲になってしまいました。<br>
そのため、ポッドキャスト<code>/channels/</code>ページから最新の20話以上をダウンロードする場合は<code><a href="https://github.com/yt-dlp/protobug">protobug</a></code>ライブラリが必要です。<br>
<code>protobug</code>はyt-dlp製のProtobuf操作ライブラリです。<br>

<code>pip</code>でプラグインをインストールした場合は、protobugも一緒にインストールされます。<br>
手動でインストールする場合は、<code>.whl</code>ではなく、<code>.bundle.zip</code>をダウンロードしてください。ご不便をおかけして申し訳ございません。<br>
<small>もちろん、ポッドキャストに興味がない場合は、どちらをダウンロードしても構わない。</small>
</p>

<p>https://radiko.jp/r_seasons/〇〇の番組ページにも対応しました。</p>

<p>
また、<br>
生配信のthumbnailをradikoプレースホルダー画像から、放送局のロゴに替えました。<br>
前の放送局ビジュアルの画像より劣るけど、ないよりマシ。
</p>

<p>また、
FFmpegに対応していない一部の生配信が録音できなかったバグを修正しました。<br>
生配信で使っていたブラックリストを無効にしましたので、これらのURLでより多くのformatが見られます。
</p>

<p>
PyPiにyt-dlp-rajikoを登録しました。<br>
<code>--extra-index-url</code>はもう不要になりました。<br>
インストール、アップグレード、<code>requirements.txt</code>に追加するなどがより簡単になりました。<br>
もちろん、前の<code>--extra-index-url</code>も引き続き利用できます。
</p>

</div>

<hr>
<p id="upgrade-instructions">
If you use pip, you should be able to upgrade with <code>pip install --upgrade yt-dlp-rajiko</code>.<br>
If you installed manually, you can <a href="https://427738.xyz/yt-dlp-rajiko/dl/yt_dlp_rajiko-1.8.bundle.zip">download the updated plugin bundle here.</a><br>
The SHA256 checksums are as follows:
<pre>
10d56b9cac6a191ef07b4931d76deb4bb048c433e4fe2f05546d5cfbfe3ae45d  yt_dlp_rajiko-1.8.bundle.zip
31c4f9463b5f4039ffc36bb595dfcc3d1427837b89cc6f38a150690fef058c1a  yt_dlp_rajiko-1.8-py3-none-any.whl
8b7fb0d06e62cf9eebdbf17ce4e164b84a058172ebe0cdd36f7084d00123725b  yt_dlp_rajiko-1.8.tar.gz
</pre>
</p>
]]>
			</description>
		</item>
		<item>
			<title>yt-dlp-rajiko 1.9 has been released / 1.9 をリリースしました</title>
			<pubDate>Fri, 19 Sep 2025 12:08:33 +0100</pubDate>
			<link>https://427738.xyz/yt-dlp-rajiko/dl/yt_dlp_rajiko-1.9.bundle.zip</link>
			<description><![CDATA[
<p>
&gt;release new version<br>
&gt;4 days pass<br>
&gt;site pushes breaking change that needs a new release to fix<br>
ffs, sods law isnt it
</p>

<p>this release fixes search filtering for newly-copied URLs, and adds support for the new podcast search function (even though it isn't very useful)</p>

<hr>
<div lang=ja>

<p>
新リリースから4日後、radikoが修正が必要なブレイキングチェンジを導入した<br>
マーフィーの法則だね
</p>
<p>
このリリースは新しくコピーしたURLの「対象」設定を修正し、そしてあまり有用でない新しいポッドキャスト検索ページに対応する
</p>
</div>

<hr>

<p id="upgrade-instructions">
If you use pip, you should be able to upgrade with <code>pip install --upgrade yt-dlp-rajiko</code>.<br>
If you installed manually, you can <a href="https://427738.xyz/yt-dlp-rajiko/dl/yt_dlp_rajiko-1.9.bundle.zip">download the updated plugin bundle here.</a><br>
The SHA256 checksums are as follows:
<pre>
5800258edec65a4b5230679cee55fc186f05ed6e89c89a63acc698ce245dbb16  yt_dlp_rajiko-1.9.bundle.zip
106085f72608562f09bfb2319a1437922aca2d7df4f94af37ade4832b50b0ab1  yt_dlp_rajiko-1.9-py3-none-any.whl
4a288b04fb8e4102b15074644330ae189f7fb53af8bfd5827eb19cff6cd695e8  yt_dlp_rajiko-1.9.tar.gz
</pre>
</p>
]]>
			</description>
		</item>
		<item>
			<title>yt-dlp-rajiko v1.10 has been released / v1.10 がリリースされました。</title>
			<pubDate>Sun, 09 Nov 2025 21:01:07 +0000</pubDate>
			<link>https://427738.xyz/yt-dlp-rajiko/dl/yt_dlp_rajiko-1.10.bundle.zip</link>
			<description><![CDATA[
<div lang=en>
<p>This release fixes TimeFree downloading, following the removal of a stream on radiko's end.<br>
Unfortunately, the workaround involved means that we lose the download progress indicator.<br>
but downloads are still fast, which is the most important bit :)</p>

<p>It also extracts a bit more info for <code>r_seasons</code> programme URLs, so you can see the nice picture in GUIs and such :)</p>

<p>ALSO while I have your attention:<br>
I updated the website a bit, particularly the usage section. Hopefully it's a bit clearer and easier to use now.</p>
</div>
<hr>

<div lang="ja">
<p>このリリースでは radiko 側のストリームの削除に伴い「タイムフリー」ダウンロードを修正しました。<br>
残念ながら、この回避策はダウンロードの進捗表示を失うことを意味します。<br>
しかし、ダウンロードは依然として高速です (^^)</p>

<p>また、<code>r_seasons</code>番組の URL の情報をもう少し抽出しているので、GUI などで素敵な画像を見ることができます (^^)</p>

<p><b>その他</b>（皆さんに注目していただいている間に）：<br>
HPを少し更新しました。少しわかりやすく、使いやすくなっていることを願います。
</p>
</div>

<hr>

<p id="upgrade-instructions">
If you use pip, you should be able to upgrade with <code>pip install --upgrade yt-dlp-rajiko</code>.<br>
If you installed manually, you can <a href="https://427738.xyz/yt-dlp-rajiko/dl/yt_dlp_rajiko-1.10.bundle.zip">download the updated plugin bundle here.</a><br>
The SHA256 checksums are as follows:
</p><pre>a7bf81d880725e909225798a356899222229748411f330692c776c9153a4007f  yt_dlp_rajiko-1.10.bundle.zip
3d74112f94463a45ad1a9954343160cdcad3a8d799be934b8e30e5b622b405b2  yt_dlp_rajiko-1.10.tar.gz
ad1b3a63fc4ce4919840d92a5ca1a020cacea144f76eb07a21611dc61291fffc  yt_dlp_rajiko-1.10-py3-none-any.whl
</pre>
<p></p>



<hr>
<details>
<summary>TECHNICAL DETAILS</summary>

<p>radiko has finally taken away the on-demand <code>radiko.jp</code> stream that the plugin was using.<br>
The only streams left are delivered "as-live", i.e. it feeds you each fragment in real time, as if it was airing live. So e.g. downloading an hour-long programme would take an hour.</p>

<p>BUT there is a way to get around this, and still download quickly.</p>

<p>The playlist endpoints have a parameter <code>l</code> (probably <code>length</code>), which lets you specify how long a duration you want.<br>
If we set <code>l=300</code>, it gives us a playlist with 300 seconds (5 minutes) of audio, all at once.<br>
There's also a <code>seek</code> parameter, which seeks to a different point in the programme.</p>

<p>SO, we can walk through the programme, downloading the whole thing in 5 minute chunks.<br>
(it's a little bit more complicated than that, because sometimes the chunks aren't actually the duration they're supposed to be, for ???? reasons. so you have to track the actual duration from the HLS <code>#EXTINF</code> tags and update your cursor/play head based on that)</p>

<p>The plugin has had this capability since v1.5, for timefree30 programmes (which never had the ondemand stream).<br>
But I never expanded it to apply to normal downloads because all those 5-min chunks have to be requested up front, for every format, *even the ones you aren't downloading*.<br>
This is also why I didn't disable the stream blacklist earlier, even though I knew that it wasn't actually necessary. (the issue was just that FFmpeg was sending some HTTP headers that the streams didn't like. If you set <code>-seekable 0 -http_seekable 0 -icy 0</code> it magically starts working)</p>

<p>At some point I found that yt-dlp has a "<code>http_dash_segments_generator</code>" protocol, which lets extractors return fragments on the fly.<br>
So we can select the format, and _then_ start downloading all the chunk playlists and such as we go along<br>
Unfortunately we lose the progress meter, as we don't know the number of fragments in advance. (see the note above)<br>
it would be nice if it was possible to specify an "estimated fragment count", and then the progress meter could use that</p>

<p>I think this could be useful in future for implementing stuff like "chase play"- downloading a currently-airing programme.<br>
but also i would have to implement rudimentary Live HLS support so idk</p>

<p>Maybe this breaks compatibility with someone's workflow<br>
it still downloads just fine, and playing the timefree URLs never really worked properly<br>
idk<br>
but the changes don't feel sweeping and majestic enough to justify a major version</p>

<p>Thanks to Grub4K for answering my questions in the #yt-dlp-developers channel :)</p>
</details>
]]>
			</description>
		</item>
		<item>
			<title>yt-dlp-rajiko v1.11 has been released / v1.11 がリリースされました。</title>
			<pubDate>Sun, 23 Nov 2025 02:18:20 +0000</pubDate>
			<link>https://427738.xyz/yt-dlp-rajiko/dl/yt_dlp_rajiko-1.11.bundle.zip</link>
			<description><![CDATA[
<div lang="en">
<p>This release fixes a bug where streams were extracted incorrectly.<br>
Multiple formats were listed, but they all downloaded the same stream.</p>

<p>Fortunately that stream was the best one (<code>dr-wowza.radiko-cf.com</code>), and the corresponding format was selected by default.<br>
SO you shouldn't notice a difference from this fix.<br>
<small>but you know, its a great embarassing cockup that i should fix lol</small></p>

<p>It also changes how <code>/persons/</code> URLs are extracted.<br>
It now only returns programmes from the key station, matching what you see on the site.<br>
This means that the <code>key-station-only</code> extractor arg is no more, as it is now the default behaviour.
</p>
</div>

<hr>

<div lang="ja">
<p>このリリースは、ストリームが誤って抽出されたバグを修正します。<br>
複数の format が表示されましたが、どれも同じストリームを DL していました。</p>

<p>幸いにも、そのストリーム (<code>dr-wowza.radiko-cf.com</code>) は最良のもので、対応する format がデフォルトで選択されていました。<br>
なので修正による変化に気づけないかもしれません。<br>
<small>でもその、恥ずべき大失態なので直さなきゃですよねw</small></p>

<p>また、<code>/persons/</code> 出演者URLの抽出方法も変更されました。<br>
サイトに表示された通り、キー局の番組だけを返すようになります。<br>
そこで、<code>key-station-only</code> extractor arg がデフォルトの動作になったため廃止になりました。</p>
</div>

<hr>

<div id="upgrade-instructions">
If you use pip, you should be able to upgrade with <code>pip install -U yt-dlp-rajiko</code>.<br>
If you installed manually, you can <a href="https://427738.xyz/yt-dlp-rajiko/dl/yt_dlp_rajiko-1.11.bundle.zip">download the updated plugin bundle here.</a><br>
The SHA256 checksums are as follows:
</p>
<pre>809e9b9318629519e72343ca86edc4fce8fd530470b73b3122bfb8853b79c9fd  yt_dlp_rajiko-1.11-py3-none-any.whl
9ce82735f215c0da77750d4c6d64e2016c4e60ab38562667bfc1b1014bffe79a  yt_dlp_rajiko-1.11.tar.gz
7d1ab8485a7dce38120dba86c096bf842d2a8a87e23ac704875dd758cea25188  yt_dlp_rajiko-1.11.bundle.zip
</pre>
</div>
]]>
			</description>
		</item>
	</channel>
</rss>
