Closed hry-naka closed 1 year ago
今の仕様は
usage: rec_radiko.py [-h] channel duration [outputdir] [Prefix name]
こんな感じだけど、タイムフリーを録音したいときって、番組を検索するところから始まるような気がする。
radikoエリアフリー対応タイムフリー録音スクリプトの情報によると、最終的に録音するときには、urlが、
https://radiko.jp/v2/api/ts/playlist.m3u8?station_id=放送局ID&l=15&ft=番組開始日時&to=番組終了日時
になるとのことだが、「どの番組を録音したいか?」が決まれば、番組表の取得のAPIを使えば'station_id','ft','to'はわかるから、ユーザには”channel duration”を指定させる必要はない。
案1:それでもrec_radiko.pyに機能追加する
usage: rec_radiko.py [-h] channel duration [outputdir] [Prefix name] [-tf] [-k '文字列’]
-tf : はタイムフリーを指定するフラグ(あればタイムフリーだと思って、channel,duarationを無視するw)
案2:録音機能だけrec_radiko.pyにして、検索スクリプトは別に作る
usage: rec_radiko.py [-h] channel duration [outputdir] [Prefix name] [-tf prog_id]
-tf prog_idは番組APIで番組を一意(?)に識別するid(以下の検索スクリプトの出力からゲットできる)
channel,duarationを無視するのは案1と同じ
usage: find_radiko.py [-h] -k '文字列’
出力は、prog_idとstation_id、番組名、放送時刻、マッチした情報要素の全体(xmlタグ単位)
案3:録音機能も別のスクリプトにする
usage: rec_radiko_ft.py [-h] station_id ft-datestring to-datestring [outputdir] [Prefix name]
usage: find_radiko.py [-h] -k '文字列’
出力は、番組名、放送時刻(開始・終了)、マッチした情報要素の全体(xmlタグ単位)、
見た目の仕様だと、やはり案3だなぁ。 案3で実装しようとすると、認証用のコードがrec_radiko.pyにベタガキされているので、 これをクラスとして切り出す必要があるし、番組表API用のクラスもかなり整理が必要で、 実装コストが高そうな予感がしていたので、案1・案2を無理くりだした。 rec_radiko.pyは「いま放送している番組を録音する」のに対して、 タイムフリーを録音するってことは、「いつのどの番組を録音する」ってことだから、 使い方が全然違うので、やはり無理に一緒にするのはやめにする。
まずは、案3を想定しながら、mypkg配下のクラスのリファクタリングと認証用クラスの整備とかを 地道に進めよう。
【Python】ラジコの番組を検索するスクリプト によると、 searchのAPIがあるみたいなので、こちらを利用する方向で考える
今のrec_radiko.pyに機能追加することを考えていたけど、なんとなく使い方が違いそうなので、別スクリプトにすることを含めて考える。