Anchor.fm 各話の再生数 一括取得コマンド

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 にログインするための情報を書いてください.メールアドレスとパスワードね.スクリプトに平文でログイン情報を書くのは安全じゃない気がするけど,もっといい方法を知らないのでこうなっています… 知ってる人はぜひ教えてください!

Anchor analytics: 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 というファイルが作成されます.これは (たぶん) ログイン状態を保持するためのファイルなので,(たぶん) 削除してはいけません.僕自身,まだよく分かってません… 分かり次第追記します.

参考

ブラウザで挙動を調査

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

コメントを残す

Powered by WordPress.com. テーマ: Baskerville 2 by Anders Noren

ページ先頭へ ↑

%d人のブロガーが「いいね」をつけました。