10
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Podcast Client って作れるんですけど知ってました?

10
Posted at

この記事および紹介するアプリは、筆者監修のもと AI を使用しています。

ポッドキャスト、流行ってますよね

皆さん、ポッドキャストは何で聴いていますか?

Apple Podcasts? Spotify? Amazon Music?

私は主に Amazon Music で聴いていたのですが、広告が流れることもあったり、Podcastが聞きたいだけなのに音楽が(その時は)邪魔だったり、「このエピソードだけ集めた再生リストを作りたいな〜」と思ったり、細かいところで自分の望むものと違うことがありました。

もちろん Amazon Music が特別悪いわけではないのですが、なんというかこう、

ただ、私はもっとこう……

もっといいポッドキャストだけを聴くためのアプリが欲しい

AI 時代、自分用のアプリなら以前より簡単に作れるんだから、もう作ってしまえばいいのでは?

というわけで作っていきましょう

仕様

まずは既存アプリを比べてみる

一旦、主要なアプリをざっくり比較してみます。

スクリーンショット 2026-07-25 23.48.16.png

Apple Podcasts Spotify Amazon Music
アプリの主役 ポッドキャスト専用 音楽・動画・ポッドキャスト 音楽・ポッドキャスト
番組のフォロー できる できる できる
次に聴く順番の編集 キューを編集できる 「次に再生」に追加できる ライブラリ・再生キュー中心
名前付きのまとまり 番組単位の「ステーション」 エピソードをプレイリストへ保存可能 音楽と同じライブラリ内で管理
広告 番組やサブスクリプションによる Premium でもポッドキャスト広告が入る場合あり Prime 対象の一部人気番組は広告なし

こうやってみると、欲しい機能はそれぞれのアプリにはあるのですが全てがあるアプリがないので作りますかね。

アプリを作る工数が AI によって下がったからこそ気軽にできる選択肢。

ありがたいですね。

要件

私が欲しい機能をリストアップします!

要件 理由
Podcast Only 音楽や動画と混ぜず、開いたらすぐ聴きたい
諸々基本機能
(バックグラウンド、再生速度、etc...)
これがないと Podcast Client を名乗れない
複数の再生リスト 「通勤中」「あとで聴く」など明示的に分けたい!
お気に入りのエピソードをまとめておきたい
広告なし 聴くことを邪魔しない(エピソード自体に含まれる広告はそのまま)

本当にこれだけがあればいいので簡単に作れるはず。基本機能は下記に書いています。

諸々基本機能
  • 番組・エピソード検索
  • 番組のフォロー
  • 新しい順・古い順の切り替え
  • エピソード説明の表示
  • バックグラウンド再生・ロック画面操作
  • 0.5〜3.0 倍速
  • 15 / 30 / 60 秒スキップ
  • スリープタイマー
  • 再生位置の保存・復元
  • 複数の再生リスト
  • 未再生エピソードから作る再生予定
  • オフラインダウンロードと進捗表示
  • Wi-Fi 接続時だけダウンロードする設定

作成!

そもそもポッドキャストとは?

ここから実装の話です。

ポッドキャストは音声配信サービスの名前というより、音声番組を配布する仕組みです。

配信者は番組情報とエピソード一覧を RSS という XML ファイルで公開します。

Apple Podcasts や Spotify などのアプリは、その RSS を読み取って番組名、画像、説明、公開日、そして音声ファイルの URL を表示します。

そして、再生する際はそこに書かれている URL へ音声を取得しに行く仕組みです。

スクリーンショット 2026-07-25 23.46.22.png

RSS の中身は下記のようなフォーマット

音声ファイルが置かれている場所を <enclosure> で教えてくれます。

<item>
  <title>第42回 Podcast Clientを作った話</title>
  <guid>episode-42</guid>
  <pubDate>Sat, 25 Jul 2026 09:00:00 +0900</pubDate>
  <description>今回はPodcast Clientを作ります。</description>
  <enclosure
    url="https://cdn.example.com/episode-42.mp3"
    length="12345678"
    type="audio/mpeg" />
  <itunes:duration>42:15</itunes:duration>
</item>

Apple の RSS 要件でも、各エピソードには一意な guid と、音声の場所・サイズ・形式を示す enclosure が必要とされています。

アプリ側はこの XML を読み、再生ボタンが押されたら enclosure の URL を音声プレイヤーへ渡すだけ。

思ったより作れそうじゃないですか?

番組の検索

RSS の URL が分かればアプリで購読できますが、毎回 URL を入力するわけにはいきません。面倒臭すぎるので

そこで番組・エピソードの検索には Apple の iTunes Search API を使いました。

検索結果には番組名、画像、配信者名に加えて feedUrl が含まれています。

  1. Apple の API で番組を検索
  2. 検索結果から feedUrl を取得
  3. アプリが RSS を直接取得
  4. RSS にある音声 URL を直接再生

という順で処理します

実装苦労話1 バックグラウンド再生

音声 URL を再生するだけなら比較的簡単だったのですが、下記に少し手こずりました

  • アプリを閉じても再生を続ける
  • ロック画面へ番組名と画像を出す
  • イヤホンから一時停止する
  • 電話や別アプリの音声へ正しく反応する
  • エピソード終了後、再生リストの次へ進む
  • 再生位置を保存しすぎず、でも失わない

あたりです。

iOS では Audio Session を再生用途に設定し、Background Modes の Audio を有効にする必要があります。

実装苦労話2 RSSフォーマット

もう一つ大変だったのが RSS の形式揺れです。

共通ルールはありますが、実際のフィードには多少のブレがやっぱり存在します

(itunes:duration が秒数だったり HH:MM:SS だったりするなどなど)

ただまぁ、ここは AI にそのまま任せたら解決しましたね。

ありがとう AI!!

まとめ

ということで、Podcast Client を作りました。

サイコー。

もちろん、既存商用アプリと比べると、端末感同期がなかったり、文字起こしがないなど劣っているところはかなりあります。

それでも、自分が欲しかった「ポッドキャストだけを、シンプルに聴くアプリ」ができて、とても満足しています。

AIによって、個人でここまでのアプリを作るハードルが大きく下がったのは間違いないですね。
(AI にFull任せだと「動くけどなんか違うもの」が作られてしまいますが、、、)

App Store に載せているので、もしよければ使ってみてください!

完全無料、アカウント不要、アプリ側の広告もありません!

それでは、良きポッドキャストライフを。

10
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
10
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?