Anchor.fm でポッドキャストを配信すると,各エピソードがどれくらい再生されてるのか気になるよね.簡単に一覧するためのシェルスクリプトを作ってみました!
#!/bin/bash # ログイン情報 id="メールアドレス" pw="パスワード" # ログインして cookie を作成 curl --basic -u $id:$pw https://anchor.fm/api/login -H "accept: application/json" -c cookie # エピソードの数を取得 limit=`curl -b cookie https://anchor.fm/api/podcastepisode | jq ".totalPodcastEpisodes"` # エピソードの数だけデータを取得 json=`curl -b cookie https://anchor.fm/api/podcastepisode?limit=$limit | jq ".podcastEpisodes"` # 各エピソードの再生回数を含む配列を作成 for i in `seq 0 $(expr $limit - 1)` do #title=`echo $json | jq .[${i}].title` downloads=`echo $json | jq .[$i].downloads` #echo "$title $downloads" arr+=($downloads) done echo ${arr[@]}
依存
たぶんこれだけだと思う.
使い方
4行目と5行目のところに Anchor にログインするための情報を書いてください.メールアドレスとパスワードね.スクリプトに平文でログイン情報を書くのは安全じゃない気がするけど,もっといい方法を知らないのでこうなっています… 知ってる人はぜひ教えてください!

anan
このスクリプトを,例えば ~/bin/anan
(ANchor ANalytics
… みたいな気持ち) に保存する.~/bin
にパスが通っていれば次のコマンドでOK!
$ anan % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 0 0 0 0 0 0 0 0 --:--:-- 0:00:01 --:--:-- 0 % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 0 0 0 0 0 0 0 0 --:--:-- 0:00:01 --:--:-- 0 1 4 10 15 8 9 9 7 14 7 6 6 7 8 6 9 15 9 3 4 4 4 2 5 6 6 2 2 5 8 3 6 12 4 10 4 2 5 3 4 7 11
こんな感じで端末にドバッと再生数が一覧表示されます.新しい順なので,上の例の場合だと最初の 1
は一番新しいエピソードが1回再生されたことを,末尾の 11
は一番古いエピソードが11回再生されたことを意味していますよ.
注意 (?)
これを動作させると, ~/cookie
というファイルが作成されます.これは (たぶん) ログイン状態を保持するためのファイルなので,(たぶん) 削除してはいけません.僕自身,まだよく分かってません… 分かり次第追記します.
参考
- 8行目:
curl
で Basic 認証をする - 11行目:
curl
でcookie
を使う - 14行目:
jq
を使ってシェルスクリプトで json を扱う - 17行目:
jq
+for
+seq
で json を処理する - 23行目: シェルスクリプトで配列を使う

上の画像のように,実際にブラウザでログインしたりしながら必要な情報を取得してそうな api がどれなのかを手探りで見付けていく過程も結構楽しい笑.8行目,11行目,14行目の api のエンドポイントは,こんな地味な作業で特定しました…!
コメントを残す