min117の日記

初期desireもち。趣味Mac,メインFedora,仕事xp。

bash radikoの番組表を加工する(vimで最短マッチ ¥{-} 利用)stationID=FMFUKUI; curl -s http://radiko.jp/v2/api/program/station/weekly?station_id="$stationID"

f:id:min117:20200223163643p:plain

 

きゃりーぱみゅぱみゅのラジオ面白い。探したい。何時から始まるか全国すべてのラジオ局の番組表から探したい

f:id:min117:20200223164055p:plain

 

まずは指定したラジオ局の番組表を取得するスクリプト作った。

$ vim myradikoBANGUMI.sh

f:id:min117:20200223155043p:plain

curlをラップしてるだけ。

 

こんな感じで使う。

$ ./myradikoBANGUMI.sh FMFUKUI | grep -B 1 きゃりー

f:id:min117:20200223155457p:plain

park.gsj.mobi



全国のラジオ局の一覧はcurl取得。

curl -s http://radiko.jp/index/ | grep href | awk -Findex/ '{print $2}' | awk -F\" '{print $1,$2}' | awk -F\> '{print $1,$2}' | sed -e s/'<\/a'/''/g | sed -e s/'\/'/''/g

f:id:min117:20200223160440p:plain

f:id:min117:20200223164227p:plain

 

コマンド myradikosearchChannel を叩けばイッパツで局一覧を取得できるようにaliasに書く

$ vim ~/.bashrc

alias myradikosearchChannel='curl -s http://radiko.jp/index/ | grep href | awk -Findex/ '\''{print $2}'\'' | awk -F\" '\''{print $1,$2}'\'' | awk -F\> '\''{print $1,$2}'\'' | sed -e s/'\''<\/a'\''/'\'''\''/g |  sed -e s/'\''\/'\''/'\'''\''/g'

 

局一覧すべてに対して番組表を取得にいく。for文で回す。

L=myradikolistKARRY3.txt; for i in $(myradikosearchChannel | awk '{print $1}'); do echo "$i" | tee -a "$L"; ./myradikoBANGUMI.sh "$i" | grep -B 1 きゃりー | tee -a "$L";

 

結果ファイルを編集する。

$ vim myradikolistKARRY3.txt

f:id:min117:20200223154900p:plain

17行目、25行目 ラジオ局名

18行目、26行目 prog行 開始時刻(ft)、終了時刻(to)

 

これを整形してこんな感じのCSVにできれば

ラジオ曲名,開始時刻,終了時刻,ファイル名

f:id:min117:20200222130512p:plain

前回作ったスクリプトで一括録音も可能なわけだ。

min117.hatenablog.com

 

要らない行はvimで消す。

%s/.*desc.*gt; //g

%s/<\/imgs>//g

%s/">\n//g

%s/--//g

 

f:id:min117:20200223162312p:plain

f:id:min117:20200223154833p:plain

 

さらに加工。

f:id:min117:20200223161956p:plain

310行目、317行目

lt から始まって gt までを消したいなぁ。vim正規表現最短マッチできればいいわけだ。

qiita.com

 

すげ。できた。{-} で最短マッチできるみたい。

/lt.\{-}gt;

f:id:min117:20200223162753p:plain

 

置換する。

%s/lt.\{-}gt;//g

f:id:min117:20200223163101p:plain

 

ここまできた。

f:id:min117:20200223163144p:plain

359行目と360行目をつなげたい。

FM_OITA,202002182100,202002182130,叶美香

みたいに取り出せるといい。

 

cat このtxt | grep | -B 1 title

でできそう。次回まで試す。

 

qiita.com