日付を書くことにしよう: 2026/8/8 (書いているうちに 8/9 になった)。
ようやくお盆休みに入った。明日は停電なので、 研究室の Mac を止める算段をしていて、最後のバックアップ中。
気になっていたことをやっつけるか。
ネットラジオを聴いていて、 “エアチェック” というのも変だな、 ネットチェックというのかしら、よく聴く番組を録音している、 というのを以前書いた。
今年の5月まではそれで上手く行っていたのだけれど、 6月に入ってから上手く行かなくなった。
[https @ 0x9a0c68000] HTTP error 403 Forbidden [in#0 @ 0x9a0c60000] Error opening input: Server returned 403 Forbidden (access denied) Error opening input file https://mtist.as.smartstream.ne.jp/30039/livestream/chunklist.m3u8. Error opening input files: Server returned 403 Forbidden (access denied) |
これを復活させよう。
Chappy 君に投げた。御神託は
| はい。原因はかなり絞れました。 調布FMのネット配信自体が終了したわけではありません。配信サーバー側が、 直接の m3u8 アクセスに対して Origin ヘッダーを要求するようになったため と考えてよさそうです。 |
そうなんですね。それでどうすれば良いかと言うと、
これまでは
/opt/local/bin/ffmpeg -to 1860 -i "https://mtist.as.smartstream.ne.jp/30039/livestream/chunklist.m3u8" -vn $FNAME |
/opt/local/bin/ffmpeg \
-headers "Origin: https://listenradio.jp" \
-i "https://mtist.as.smartstream.ne.jp/30039/livestream/playlist.m3u8" \
-t 1860 -vn $FNAME
|
| これは単なる推測ではなく、 2026年に公開された ListenRadio 用の録音ツールでも、 まさに mtist.as.smartstream.ne.jp が 403 Forbidden になる問題を、 この Origin ヘッダーを追加することで解決しています。 |
それ以外に chunlist.m3u8 でなく playlist.m3u8 を指定する、 この方が自然ということでした。
| HLSでは playlist.m3u8 が入口となり、 そこから現在有効な下位のプレイリストを取得する形なので、 こちらを指定する方が自然です。 実際、現在公開されている調布FMのストリームURLも playlist.m3u8 になっています。 以前は二段目の chunklist.m3u8 を直接指定する方法も使われていましたが、 FFmpegなら二段階のHLSをそのまま扱えます。 |
この説明は、実は私にはちんぷんかんぷん。 プレイリストというものを知らないので。 これで学問をやっているわけではないので、結果オーライということにする。
なお、streamlink を使うスクリプトもあって (これも同時期に動かなくなっていた)、 それについても、同様に
/opt/local/bin/streamlink \
--http-header "Origin=https://listenradio.jp" \
--stream-segmented-duration 10 \
--output chofu-test.ts \
"https://mtist.as.smartstream.ne.jp/30039/livestream/playlist.m3u8" \
best
|
この改訂で上手く行くかは来週にならないと分からない。
(2026/8/15) 無事録音成功。