VPS を式年遷宮する その5 超A&G+の録画環境構築
概要
文化放送のインターネットラジオである 超A&G+ (以下AGQR) にてリアルタイム配信されている番組を自動録画する環境を構築した。
先人が公開しているソースコードを Fork し、自身の環境や使い勝手に合わせて改変した。
その際の作業内容を記述する。
構築する目的
AGQR にはタイムシフトなどの機能は存在せず基本的にリアルタイム視聴のみなので、 後日好きなタイミングで再生が出来るようサーバ上で録画出来る環境が欲しかった。
環境
サーバ
ローカル
- macOS 10.15.6 Catalina
- iTerm2
AGQR 録画の OSS 紹介
AGQR の録音ツールは先人が OSS として公開している物が存在しているので、その中で気になった物を下記に示します。
ybenjo/agqr.rb
https://gist.github.com/ybenjo/9904543
Ruby 製の OSS で、同じディレクトリに設置した schedule.yaml
から録画リストを読み込んで実行する。
今回は このリポジトリを Fork させていただきました。
ushironoko/a-Go
github.com
Golang で実装された OSS。
バイナリが配布されているので、RTMPDump
導入済みの環境で直ぐに利用出来る。
自動録画にはタスクスケジューラや crontab
等が必要。
Fork したコードについて
Fork 先リポジトリは下記リンクを参照。
Fork 元との差分は下記の通り。
- 各パッケージのパスを自環境に合わせて変更
- 音声ファイルの保存先を実行ファイルと同じディレクトリに変更
/flv
/m4a
ディレクトリが作成できるよう修正- 配信 URL を現行の物に修正
- 音声ファイルの出力フォーマットを
mp3
からm4a
へ変更
配信 URL は不定期に変更されるため結構曲者です。
AGQR の録音環境を構築する際には URL が接続可能か確認しましょう。
作業手順
必要パッケージ導入
スクリプト実行に必要なパッケージを導入します。
私の環境では前回の Radiko 録音環境構築時に導入済みでした。
$ sudo apt install rtmpdump $ sudo apt install ffmpeg
Ruby 導入
サーバに Ruby を導入していなかったので、下記記事を参考に rbenv
をインストールして環境構築しました。
スクリプト設置と実行
スクリプトを設置するディレクトリ /agqr
を作成し、スクリプトをGist から Clone します。
$ mkdir agqr $ cd agqr $ git clone https://gist.github.com/y4shiro/8f3093c7db7b34e0e83b525979fbe0ec .
crontab
に下記のタスクを追加しました。
毎時 29/59 分に agqr.rb
を実行し、schedule.yaml
に放送直前の番組が存在する場合は録画を開始します。
初回実行時にはデータ保存用のディレクトリ data/flv
/ data/m4a
が作成されます。
29,59 * * * * sleep 55; /home/<username>/.rbenv/shims/ruby /home/<username>/agqr/agqr.rb
私が実際に運用している schedule.yaml
の一部を例に示します。
ファイル名 / 曜日 / 時刻 / 番組の長さ(分) を記述してください。
- title: hidakakuma wday: 火 time: '23:00' length: 30 - title: toshitai wday: 火 time: '23:30' length: 30
感想など
AGQR の配信 URL は不定期に変更されるので、URL の変更検知を行う仕組みが必要だと感じた。
今回の作業で録音周りは一通り移行し終えたので、次はドメインや証明書関連に着手する予定です。