CutFast CutFast
ガイド

自前ポッドキャスト配信に挑む — HLS 音声配信を 0 円で立ち上げる 2026 年版

公開日 · 著者: CutFast Team
CutFast を Google の優先ソースに追加 トップニュースと AI による回答に CutFast がもっと表示されます。

「Spotify for Podcasters のダッシュボードを見たら、リスナー数は伸びているのに自社サイトへの流入はゼロだった」——2025 年の終わりごろから、こういう相談が立て続けに届いた。プラットフォーム側で完結してしまい、本来の目的だったブランド接点や CV につながらない。だったら 自社サイトに HLS で埋め込んでしまえばいい、というのが本稿の出発点だ。MP3 さえあれば、ブラウザだけで HLS 化して CDN に置き、月数百円で配信が成立する。

なぜ 2026 年に自前 HLS 配信が現実的になったか

理由は三つある。第一に、CDN コストの下落。Cloudflare R2 は egress 0 円、AWS S3 + CloudFront も日本リージョンで 1GB あたり数円のオーダーまで下がった。ポッドキャスト一本(30 分・128kbps AAC で約 28MB)を 1 万回再生しても CDN 費用は数百円に収まる。

第二に、自社サイト統計の重要性。Spotify for Podcasters のアナリティクスは「再生数」しか教えてくれず、リスナーがその後どのページを見たか、何を購入したかは追えない。GA4 や Mixpanel と紐付けたいなら自前配信一択だ。

第三に、ブラウザ完結ツールの成熟。WebCodecs と Mediabunny を組み合わせれば、サーバー不要で MP3 を HLS(音声プレイリスト + AAC セグメント)に変換できる。アップロード待ち時間も、ffmpeg 環境構築も要らない。30 分の音声なら 1 分以内にパッケージングが終わる。

ただし最初に正直に書いておくと、本記事で扱うのは 単一レンディション(一つのビットレート)の HLS だ。マルチビットレート ABR(Adaptive Bitrate)が必要なら ffmpeg や Bitmovin、Mux のような専用サービスを選ぶべきで、Mediabunny の範囲外になる。とはいえポッドキャストは音声のみで帯域要求が低く、128kbps 一本で 99% のリスナーをカバーできるので、単一レンディションで十分実用に耐える。

HLS 音声配信のしくみ

HLS(HTTP Live Streaming)は Apple が策定したストリーミング規格で、マスタープレイリスト(master.m3u8)→ メディアプレイリスト(audio.m3u8)→ 細切れのセグメントファイルという三層構造で動く。プレイヤーは m3u8 を順に読んで、セグメントを 6 秒前後ずつダウンロードしながら再生する。途中でネットワークが切れてもセグメント単位で復帰できるのが最大の利点だ。

音声 HLS のセグメント形式は三択ある。実用上は AAC 一択だが、用途別に整理しておく。

セグメント形式拡張子特徴用途
AAC(ADTS).aac高効率、iOS/Android/ブラウザ全対応、64-128kbps で音楽品質ポッドキャスト本命
MP3.mp3互換性広いが AAC より同ビットレートで音質劣る既存 MP3 を再エンコードしたくない時
WAV.wav無圧縮、サイズ大、CDN コスト跳ね上がるアーカイブ・編集素材配信のみ

実運用では AAC 128kbps + 6 秒セグメントが鉄板構成。30 分のエピソードなら約 300 セグメント生成され、master.m3u8 と audio.m3u8 を含めて合計 28MB 前後に収まる。

ブラウザ完結ワークフロー:MP3 を audio-to-hls でパッケージング

cutfa.st の audio-to-HLS はブラウザ内で完結するパッケージャだ。アップロードもインストールも不要で、URL を開いてファイルをドラッグするだけで HLS 一式が生成される。

具体的な手順はこうなる。

  1. 既存の MP3 を用意する。すでに編集済みのエピソードファイルでよい。
  2. MP3 to HLS ページを開き、ファイルをドロップ
  3. セグメント長を指定(推奨 6 秒、Apple 推奨値)
  4. 出力フォーマットで「AAC(推奨)」を選ぶと自動で MP3 → AAC 128kbps に再エンコードされる。元のビットレートを保ちたいなら「MP3 segments」を選ぶ
  5. 「パッケージ生成」を押す。30 分音声で約 30-60 秒
  6. ZIP をダウンロード → 中身は master.m3u8audio.m3u8segment_000.aacsegment_NNN.aac

すでに AAC マスターを持っているなら AAC to HLS を使うと再エンコードなしでセグメント分割だけが走るので、より高速かつ無劣化だ。

ZIP を解凍したフォルダ構造はこうなる。

podcast-ep01/
├── master.m3u8         # マスタープレイリスト
├── audio.m3u8          # メディアプレイリスト(セグメント一覧)
├── segment_000.aac     # 最初の 6 秒
├── segment_001.aac
└── ...

このフォルダ全体をそのまま CDN にアップすれば配信できる。

CDN にデプロイする

CDN 選びは規模で決まる。月間再生 1 万回以下なら Cloudflare R2 が圧倒的に安く、それ以上なら CloudFront か Fastly を検討する。

CDN月額目安(1 万再生・30 分エピソード)強み注意点
Cloudflare R2無料枠内egress 0 円、設定シンプル日本にエッジ多いが S3 API 互換のみ
AWS S3 + CloudFront約 800-1500 円信頼性、機能豊富egress 課金、設定項目多い
さくらのクラウド オブジェクトストレージ約 500-1000 円国内事業者、円建てグローバル CDN は別途

どの CDN でも MIME タイプCORS は必ず設定する。ここをミスると Safari で再生できなかったり、独自ドメイン埋め込みでブロックされたりする。

MIME タイプはこの三つを設定する。

# Nginx の場合
location ~* \.m3u8$ {
    add_header Content-Type application/vnd.apple.mpegurl;
    add_header Cache-Control "public, max-age=10";
}
location ~* \.aac$ {
    add_header Content-Type audio/aac;
    add_header Cache-Control "public, max-age=31536000, immutable";
}
location ~* \.ts$ {
    add_header Content-Type video/mp2t;
}

m3u8 は短い TTL(10 秒程度)、セグメントは長期キャッシュ(1 年 immutable)が定石だ。プレイリストを書き換えてもセグメント側はハッシュで一意なので衝突しない。

CORS は埋め込み先ドメインを許可する。Cloudflare R2 のバケット設定なら、

[
  {
    "AllowedOrigins": ["https://example.com", "https://www.example.com"],
    "AllowedMethods": ["GET", "HEAD"],
    "AllowedHeaders": ["Range", "Origin"],
    "ExposeHeaders": ["Content-Length", "Content-Range"]
  }
]

Range ヘッダ許可は必須。HLS プレイヤーはセグメントの一部だけ取得することがある。

再生確認と自社サイト埋め込み

ローカル再生確認は Safari ネイティブ が一番手っ取り早い。master.m3u8 を Safari にドラッグすれば即座に再生される。Chrome/Firefox はネイティブ非対応なので hls.js 経由でテストする。

自社サイトへの埋め込み HTML はこれだけだ。

<audio id="podcast-player" controls preload="metadata"></audio>

<script src="https://cdn.jsdelivr.net/npm/hls.js@1.5.13/dist/hls.min.js"></script>
<script>
  const audio = document.getElementById('podcast-player');
  const src = 'https://cdn.example.com/podcast-ep01/master.m3u8';

  if (Hls.isSupported()) {
    const hls = new Hls();
    hls.loadSource(src);
    hls.attachMedia(audio);
  } else if (audio.canPlayType('application/vnd.apple.mpegurl')) {
    audio.src = src;  // Safari はネイティブ
  }
</script>

15 行程度で動く。<audio> タグなのでスマホでも背景再生される。デザインを凝るなら Plyr や Vidstack のような UI ライブラリで包めばいい。

RSS と Apple Podcasts への提出

「自前 HLS にしたら Apple Podcasts に出せないのでは?」と心配されることがあるが、結論から言えば 両立できる

選択肢は三つ。

A. 自社サイトのみで運用 — Apple/Spotify に出さず、SEO とブランド接点に振り切る。CV 計測がフルにできる。

B. RSS フィードを別途用意して Apple/Spotify にも出す — Apple Podcasts は MP3 直リンクを要求するので、RSS の <enclosure> には MP3 を、自社サイトには HLS を、と二系統で配信する。CDN コストは少し増えるが両取りできる。

<item>
  <title>第 1 回:自前配信のすすめ</title>
  <enclosure url="https://cdn.example.com/podcast-ep01/audio.mp3"
             length="28843200"
             type="audio/mpeg" />
  <itunes:duration>1800</itunes:duration>
</item>

C. 完全 HLS シフト — Apple Podcasts も HLS を受け付けるが、対応プレイヤーが限られるので推奨しない。

実務では B が現実解だ。MP3 マスター 1 ファイルから両方生成すればいい。

Anchor / Buzzsprout / Spotify for Podcasters との比較

正直に書く。Anchor(現 Spotify for Podcasters)や Buzzsprout は 無料で簡単で、初心者の最初の一歩としては優秀だ。RSS 自動生成、Apple/Spotify 配信、簡易アナリティクスが箱入りで手に入る。月数百円から始められる Buzzsprout は特に音質と安定性が高い。

自前 HLS が勝るのは「自社サイトの主役にしたい」場合に限る。具体的には、コーポレートサイト内に組み込んで他のコンテンツと並べたい、CV 導線(資料請求・問い合わせ)と直結させたい、独自デザインのプレイヤーを使いたい、GA4 で詳細追跡したい——これらが目的ならホスティング型サービスでは届かない。逆に「とにかく Apple Podcasts に出したい」だけなら Buzzsprout で十分で、自前は過剰投資だ。

FAQ

Q1. 単一レンディションだとモバイル回線で途切れない? A. 128kbps AAC は 4G の最低速度(実効 1Mbps 程度)でも十分余裕がある。3G 圏ならビットレートを 64kbps に下げて再パッケージするのが現実解。HLS のセグメント単位ダウンロードのおかげで多少の揺らぎは吸収される。

Q2. 複数ビットレート(ABR)が本当に必要になったら? A. ffmpeg で 64/128/192kbps の三本を作り、master.m3u8 で #EXT-X-STREAM-INF を並べる。Mediabunny ベースの cutfa.st は単一レンディション特化なので、ABR が要るなら ffmpeg や Mux、Bitmovin を併用する。

Q3. 章マーカー(Chapter Markers)は付けられる? A. HLS の WebVTT 章マーカーミックスは現状未対応。MP3 側に ID3 チャプターを埋め込み、RSS 経由配信時に活用するのが現実的。HLS プレイヤー UI 側で章ナビを自前実装する手もある。

Q4. 文字起こし(トランスクリプト)はどうする? A. WebVTT 字幕の HLS ミックスは未対応なので、HTML 側に別途テキストを並べるか、外部 VTT を hls.js の subtitleTrack で読み込む。SEO 観点では HTML に全文掲載するのが最強。

Q5. 限定公開(有料会員のみ)はできる? A. CDN の署名付き URL(CloudFront Signed URL、Cloudflare Workers)で Time-limited Token を発行する。DRM 出力は Mediabunny 範囲外。

Q6. 月のランニングコストはどれくらい? A. 月間総再生 1 万回・1 エピソード 30 分・AAC 128kbps の前提なら、Cloudflare R2 で実質 0 円(無料枠内)、AWS S3+CloudFront でも 1500 円以下。Buzzsprout の最低プラン(月 19 ドル)と比べても割安で、CV 計測などの間接効果を加えれば投資対効果は明確に上回る。

「HLS・m3u8・配信録画」の記事 8 本をすべて見る →

これらの AI ツールを試す