Voicy「学びのセカンドオピニオン」を毎日配信して、放送数はすでに1,300本を超えました。
続けてきたことは嬉しい一方で、ふと気づいたことがあります。新しく聴いてくれる人にとって、1,300本という数はただの「壁」にしかならないのではないか。検索窓に何かキーワードを打ち込まないと辿り着けない放送が、ほとんどだということです。
埋もれてしまった放送に、もう一度光を当てたい。そう思ってつくったのが、今回紹介する「のざたんの気まぐれアーカイブガチャ」です。
▶ 実際に触ってみる:voicy-gacha.meetupsensei.com
ボタンを押すと、カプセルがふわふわ→シェイクして、1,300本の中からランダムに1本が表示されます。レア度(N・R・SR・SSR)も一緒に出てきて、プレミアム放送が当たると専用の特別演出が出ます。
この記事は、「自分のチャンネルでも同じものを作りたい」と思ってくれたVoicyパーソナリティさんが、実際に手を動かして完成させるためのガイドです。
この記事の対象者
・ターミナル(黒い画面にコマンドを打つやつ)に苦手意識がある方
・コードは書けないけれど、AIに「お願い」する形なら試してみたい方この記事では、ターミナル操作は一切出てきません。すべて、Claude Codeという「日本語で指示できるAIアシスタント」に話しかけるだけで完成します。
まず選んでください:2つの作り方があります
実は、このガチャには2つの完成形があります。どちらにするかで、かかる時間が変わります。
| 🟢 軽量版(おすすめ) | 🔵 フル機能版 | |
|---|---|---|
| できること | カードが出て、ボタンを押すとVoicyのアプリ・サイトに飛んで聴く | カードが出たその場で、ページを移動せず再生できる |
| 準備の時間 | 5〜10分くらい | 30分〜1時間くらい(途中、待ち時間あり) |
| おすすめな人 | とにかく早く公開したい/まずは試してみたい | 多少時間がかかっても、聴き心地を一番よくしたい |
迷ったら軽量版から始めてください。 後から「やっぱりフル機能版にしたい」と思ったときも、ここまでの作業はそのまま活かせるので、やり直しにはなりません。
この記事は、軽量版の完成までを丁寧に解説します(多くの方はここまでで十分満足できる仕上がりになります)。フル機能版への発展のさせ方は、最後に簡単に触れます。
全体の流れ(軽量版)
① Claude Codeを準備する ↓ ② 「これを作って」とお願いする(GitHubのコードを使う) ↓ ③ あなたのVoicyのデータを渡す ↓ ④ できあがったものを公開する
「① の準備」は最初の1回だけ。慣れている方は②から読み始めてOKです。
事前に必要なもの
- Claude Code(Anthropicが提供する、AIに日本語で指示してパソコン作業をしてもらえるツール。有料プランが必要です)
- Voicyのパーソナリティ管理画面にログインできること(あなたの放送データをダウンロードするために使います)
Claude Codeを初めて使う方は、まず公式サイトの案内に沿ってインストールしてください。インストールが終われば、この記事の②からは「日本語で話しかける」だけです。
ステップ①:Claude Codeを開く
インストールが終わったら、Claude Codeを起動してください。
真っ黒い画面が出てきますが、構える必要はありません。この画面は「AIとチャットする場所」だと思ってください。LINEやメッセンジャーで誰かに話しかけるのと同じ感覚で、日本語をそのまま打ち込んで送るだけです。
ステップ②:「これを作って」とお願いする
Claude Codeの画面に、以下の文章をそのままコピーして貼り付け、Enterキーを押してください。
GitHubの https://github.com/nozatan530/voicy-gacha にあるコードを使って、
「Voicyアーカイブガチャ」の軽量版(gacha-lite.html を使うバージョン)を
自分のパソコンに作りたいです。
まず、このリポジトリの内容を、わたしのパソコンの分かりやすい場所
(例:デスクトップに voicy-gacha という名前のフォルダ)にダウンロード
してください。
ダウンロードが終わったら、中に入っている README.md の
「🟢 ライト版のセットアップ」という部分だけを読んで、次に何をすればいいか、
わたしに日本語で分かりやすく説明してください。
コマンドの実行が必要な場合は、コマンドを直接実行してもらって構いません。
わたしはコマンドを自分で打つことはできないので、すべてお任せします。
これを送ると、Claude Codeが自動でファイルをダウンロードし、次にやることを教えてくれます。この後の作業(コマンドの実行など)は、すべてClaude Codeにお願いしてしまって大丈夫です。 「実行してください」とお願いすれば、Claude Codeが代わりに操作してくれます。
ポイント:分からない言葉や手順が出てきたら、そのまま「これはどういう意味ですか?」「代わりにやってもらえますか?」と聞き返してください。ターミナルに何かを自分で打つ必要は基本的にありません。
ステップ③:あなたのVoicyのデータを渡す
ガチャに使う放送データを用意します。
3-1. Voicyからデータをダウンロードする
- Voicyのパーソナリティ管理画面にログイン
- 「アナリティクス」→「放送」を開く
- 期間を「全期間」に設定し、CSVファイルをダウンロード
ダウンロードされたファイルは、アナリティクス_放送__全期間.csv のような名前のはずです。
3-2. Claude Codeにファイルを渡す
Claude Codeの画面に、ダウンロードしたCSVファイルをドラッグ&ドロップしてください(多くのチャットツールと同じ操作です)。ファイルが添付されたら、以下のように話しかけます。
このCSVファイルを使って、voicy-gachaの convert.py を実行してください。
episodes.json というファイルが生成されるはずです。終わったら教えてください。
これだけで、データの準備は完了です(軽量版はこのステップだけで終わりです。フル機能版だと、ここにもう一つ「数値ID取得」という20〜30分かかる作業が追加されますが、軽量版では不要です)。
3-3. あなたの番組名に書き換える
データの準備ができたら、見た目の文言を自分の番組用に変えます。
voicy-gacha の中の gacha-lite.html というファイルを、わたしの番組用に
書き換えてください。
・番組名:「(あなたの番組名)」
・パーソナリティ名:「(あなたの名前)」
そのあと、さきほど作った episodes.json の中身を、gacha-lite.html の中にある
<script type="application/json" id="episodes-data"> というタグの中に
丸ごと埋め込んでください(README.mdの「ステップ3:JSONをHTMLに埋め込む」を
参考にしてもらえれば大丈夫です)。
色やアニメーションはそのままで大丈夫です。
ステップ④:公開する
ここまでで、あなたのパソコンの中に「あなた専用のガチャ」(gacha-lite.html という1つのファイル)が完成しています。あとは、それを誰でも見られる場所に置くだけです。
一番簡単なのは、GitHub Pagesという無料の公開方法です。Claude Codeに以下のように話しかけてください。
完成した gacha-lite.html を、GitHub Pagesという仕組みを使って、
誰でもブラウザからアクセスできる形で公開したいです。
GitHubアカウントは(持っています/持っていません)。
公開までの手順を、ひとつずつ確認しながら進めてください。
途中で「これでいいですか?」と聞いてもらえると安心です。
GitHubアカウントをまだ持っていない場合も、その旨を伝えれば、アカウント作成から案内してくれます。
公開できたら:表示されたURL(
https://(あなたのアカウント名).github.io/voicy-gacha/のような形)を開いて、実際に「ガチャを引く」ボタンを押してみてください。あなたの放送が表示されれば成功です!
うまくいかない時は
途中で何かエラーが出たり、思った通りに動かなかったりした場合は、そのエラーメッセージや画面の状況をそのままClaude Codeに伝えてください。 「こういうエラーが出ました、どうすればいいですか?」と聞けば、Claude Codeが対処法を考えて、必要なら直接修正までやってくれます。
実際にこのガチャを作る過程でも、いくつか想定外のことが起きました。
- ガチャ画面に外部のアイコン素材を使っていたら、環境によっては読み込めず文字が崩れて表示された
- 「ページを移動せず再生したい」を実現しようとしたら、CSVの情報だけでは不足していて、追加の調査が必要だった(これがフル機能版で必要になる手順です)
どちらも「動かない」という事実をClaude Codeに伝えるところから、解決策を一緒に考えて直していきました。最初から完璧に動くことを目指さなくて大丈夫です。 動かない部分が見つかったら、その都度Claude Codeに相談する、という進め方で問題ありません。
レア度のしくみ(カスタマイズしたい方向け)
標準では、以下のルールでレア度が決まるようになっています。
| レア度 | 判定条件 | 出現確率 |
|---|---|---|
| N(日常回) | 通常放送 | 50% |
| R(良回) | いいね数が一定以上の通常放送 | 30% |
| SR(ざわつき回) | いいね数がさらに多い通常放送 | 15% |
| SSR(プレミアム放送) | プレミアム放送・有料放送 | 5% |
この出現確率や判定基準を変えたい場合も、ターミナル操作は不要です。Claude Codeに次のように話しかけてください。
voicy-gachaのレア度の出現確率を変更したいです。
SSR(プレミアム放送)の出現確率を、今の5%から10%に上げてください。
voicy-gachaのレア度判定で、「良回」と判定するいいね数の基準を、
今より少し低くしてください(もっと多くの放送がRになるように)。
希望を日本語で伝えるだけで、該当する設定ファイルを見つけて書き換えてくれます。
🔵 もっと聴きやすくしたい方へ(フル機能版への発展)
軽量版で公開したあと、「やっぱりページを移動せずに再生したい」と思ったら、フル機能版にアップグレードできます。やることは1つだけ追加されます。
voicy-gachaの README.md にある「🔵 フル機能版のセットアップ」の
追加ステップ(fetch_episode_ids.py の実行)を行ってください。
1300件くらいあるので20〜30分かかると思いますが、時間がかかっても大丈夫なので、
最後まで実行してください。終わったら、gacha-lite.html ではなく
gacha-standalone.html を使う形に切り替えてください。
これだけで、ページを移動せずその場で再生できる版に進化します。軽量版で使ったCSVのデータ・番組名の設定などは、そのまま引き継がれるので、最初からやり直す必要はありません。
おわりに
「過去の放送を聴いてもらう」という、配信を続けている人なら誰もが持っているであろう小さな悩みに、ガチャという遊び心で応えてみました。
このガイドの最大のポイントは、「コードが分からなくても、Claude Codeに日本語でお願いすれば形になる」ということです。実際、この記事中のお願い文をそのままコピーして渡すだけで、ステップ②〜④はすべて完了します。
ぜひ試してみてください。途中で詰まったら、遠慮なくClaude Codeに「分からない」と伝えてみてください。それも含めて、ちゃんと進められるようになっています。
▶ voicy-gacha.meetupsensei.com(サンプル)
▶ github.com/nozatan530/voicy-gacha(ソースコード)
