ポッドキャストRSSに文字起こしを追加、正しいタグの付け方
ポッドキャストrss文字起こしアクセシビリティ

ポッドキャストRSSに文字起こしを追加、正しいタグの付け方

BMMamane B. MoussaMay 26, 2026Updated July 2, 20262 min read

Summarize this article with:

TL;DR

RSSフィードの各エピソードのitemブロック内にpodcast:transcriptタグを追加して、正しいMIMEタイプでホストした文字起こしファイルを指定しよう。VTTが一番アプリ対応が充実してる。Podcasting 2.0対応アプリはこのタグを読むけど、大手プラットフォームは独自に文字起こしを生成するケースが増えてるから、タグは対応アプリ向けに公開しつつ、エピソードページにも文字起こしを置いて検索対策しよう。ファイルは安定したHTTPSのURLでホストしないと、表示が静かに失敗するから注意。

重要となるタグ

SRT と VTT のエクスポートが、トランスクリプトタグが指し示すものです
SRT と VTT のエクスポートが、トランスクリプトタグが指し示すものです

podcast:transcript 要素を使うと、ポッドキャストアプリがスクレイピングや推測なしでトランスクリプトを表示できます。 ファイルをホストし、RSS フィードの item ブロック内にタグを 1 つ追加するだけで、Podcasting 2.0 名前空間に対応したクライアントならどこでも取得できます。この記事では、正確な仕様、2026 年半ば時点のアプリ対応状況、使用するフォーマット、そして表示を静かに壊すよくあるミスについて説明します。

仕様の実際の内容

この要素は、Podcast Index プロジェクトが管理する Podcasting 2.0 名前空間に存在します。フィードの channel 要素に名前空間の宣言が必要で、各 item には独自のトランスクリプトタグが付きます。

<rss version="2.0" xmlns:podcast="https://podcastindex.org/namespace/1.0">
  <channel>
    <item>
      <title>エピソード 42: ライブオーディオの未来</title>
      <enclosure url="https://example.com/episodes/42.mp3" length="..." type="audio/mpeg"/>
      <podcast:transcript
        url="https://example.com/transcripts/42.vtt"
        type="text/vtt"
        language="ja"/>
    </item>
  </channel>
</rss>

4 つの属性:

  • url: トランスクリプトファイルへの直接リンク。HTTPS である必要があり、認証は不要です。
  • type: MIME タイプ。仕様では text/vttapplication/x-subrip (SRT)、text/htmltext/plainapplication/json (PodcastIndex JSON 形式) を受け入れます。
  • language: enfr などの BCP 47 コード。チャンネルレベルの言語属性で既にカバーされている場合は任意です。
  • rel: 任意。ファイルが完全なトランスクリプトではなくライブキャプショントラックの場合は、rel="captions" に設定します。

エピソードごとに複数の podcast:transcript タグを含めることができ、フォーマットや言語ごとに 1 つずつ追加できます。

実際に RSS タグを読むアプリ

ここが、多くのガイドが認める以上に状況が複雑になるところです。あなたの RSS リンクファイルを読み取るアプリと、独自に文字起こしを生成するアプリとでは、重要な違いがあります。

アプリRSS 文字起こしタグを読み取るか備考
Apple Podcastsはい、上書きとしてデフォルトで自動生成。VTT または SRT ファイルがあれば、それが優先されます。HTTPS が必要です。
Pocket Castsはい、全ユーザーVTT、SRT、JSON、HTML すべて対応。Plus/Patron 加入者は自動生成のフォールバックも利用可能。
Castroはい2025年2月に追加。Podcast Namespace の4形式すべてに対応。自動生成はなし。
Podcast AddictはいSRT、x-subrip、JSON、HTML に対応。
Player FMはいRSS リンクの文字起こしを文字起こしアイコン付きで表示。
Fountainはい強力なサポート。オンデマンドのプレミアム文字起こしにも対応。
GoodpodsはいRSS から文字起こしを表示。
AntennaPodはいオープンソースの Android クライアントで、ネームスペースを完全サポート。
Metacastはい文字起こしファーストのプレイヤー。クリエイター提供のコンテンツを優先。
Overcast未確認2026年4月(バージョン 2026.04)に全文文字起こしビューを追加。ソースによると iOS 26 での端末内自動生成に重点を置いており、RSS タグの取り込みは公式ドキュメントで確認されていません。
Spotifyいいえ一部の番組で独自の文字起こしを生成。クリエイターが VTT/SRT ファイル(最大 5 MB)をアップロードして RSS 経由で外部に配信することは可能ですが、その逆はできません。
Amazon Musicいいえ一部の大規模番組のみ自動生成。
Castroはい4形式すべてに対応。ダイナミック広告同期はまだなし。

私の見解としては、「最大手クライアント5社のうち3社」という枠組みは、実際に稼働しているものを過小評価しています。本当のギャップは、大手ストリーミングプラットフォーム(Spotify、Amazon)とポッドキャストネイティブのクライアントとの間にあります。ストリーミング大手以外の本格的なポッドキャストクライアントは、すでに文字起こしタグを読み取るか、その対応を発表済みです。

VTT と SRT と JSON、どれを公開すべきか

この仕様は5つのMIMEタイプを受け付けるが、実際に使われるのは3つのフォーマットだ。

VTT(text/vtt は最も堅実なデフォルト。Webブラウザにネイティブ対応し、Apple Podcasts、Pocket Casts、Castro、AntennaPod、その他ほとんどのネームスペース対応クライアントでサポートされている。キューの識別子を使った話者ラベルをネイティブにサポートしており、インタビューや共同ホストの番組には重要だ。1ファイルだけ生成するなら、VTTにすべき。

SRT(application/x-subrip はより古く、よりシンプル。ネイティブの話者ラベルはない(キューテキスト内にインラインで入れる形)が、ほぼ普遍的に認識される。同じファイルをYouTubeの字幕としてもアップロードする場合や、下流のツールが要求する場合はSRTを使う。RSSタグの正しいMIMEタイプはapplication/x-subripであり、application/srtではないことに注意。

JSON(application/json はPodcastIndexのJSONトランスクリプトスキーマに従い、versionsegments配列、セグメントごとのspeakerstartTimeendTimebodyフィールドを持つ。単語レベルと文レベルのタイミングを可能にし、アプリはハイライト再生に利用できる。SpotifyはRSSフィードからこれを取得しないが、Pocket CastsやFountainのようなクライアントはスムーズなスクロール再生に使用する。

これをうまくやっているほとんどの番組は、RSSタグ用にVTTを公開し、エピソードページにはリッチなブラウザ内体験用にJSONを用意している。どちらのファイルも小さく、オーディオ1時間あたり数百キロバイト未満なので、ストレージコストは問題にならない。編集済みオーディオからどちらかのフォーマットを生成するには、audio-to-textツールが両方をエクスポートし、字幕ジェネレーターで相互変換できる。

トランスクリプトファイルの生成

生の録音ではなく、最終編集済みのオーディオをアップロードすること。AI文字起こしツールは編集後のオーディオをはるかにうまく処理する。未編集テイクの音楽のジングルやクロストークはエラーを引き起こし、それが公開ファイルに反映されてしまう。

45分エピソードの典型的なワークフローは次の通りだ。

フラグメント4:

  1. 最終MP3を、話者ダイアライゼーション対応の文字起こしツールにアップロードする。
  2. VTT形式でエクスポートする。ホストやワークフローがJSONに対応しているなら、そちらも書き出す。
  3. 最初と最後の2分間、固有名詞、専門用語、ゲスト名をスポットチェックする。
  4. ダイアライザーが「話者1」のような汎用ラベルを付けた場合は、話者ラベルを修正する。
  5. 両ファイルをホスティング先にアップロードする。
  6. RSSアイテムにpodcast:transcriptタグを追加する。

エピソードごとの実作業は、音声が確定してから約10分ほど。さらにポッドキャストショーノートも作成する場合は、そのプロセスに文字起こしが直接活かされる。

過去のエピソードを一度に何十本分も文字起こしする必要があるなら、ConvertAudioToTextはバッチURL送信に対応しているので、ファイルを1本ずつアップロードする手間が省ける。

ファイルのホスティング先

文字起こしURLは、ログイン不要でHTTPS経由の公開アクセスが必須。選択肢を便利な順に挙げると:

ポッドキャストホスト。 Buzzsprout、Transistor、Captivate、RSS.com、Firesideはいずれもエピソードごとの文字起こしアップロードに対応し、RSSタグを自動で書き込んでくれる。ホストが対応していればこれを使うのが一番。MIMEタイプ、CORS、タグ注入まで面倒を見てくれる。

エピソードページやCMS。 自サイトでエピソードページを公開しているなら、VTTファイルを同じディレクトリに置いてフィードからリンクする。検索エンジンのクロール対象にもなる。

オブジェクトストレージ。 Cloudflare R2、AWS S3、Backblaze B2は、静的ファイルを1ギガあたり数分の1セントで配信してくれる。Content-Type: text/vttヘッダーを明示的に設定すること。多くのCDNは未知の拡張子をapplication/octet-streamとして扱い、アプリでの表示が崩れる原因になる。

GitHub Pages。 無料で小規模な番組には十分。_headersファイルを追加して、正しいコンテンツタイプを設定しよう。

CORSヘッダーは、アプリがブラウザのクロスオリジンコンテキストではなくファイルを直接取得するため、必須ではありません。ただし、CORSを設定する場合は、Access-Control-Allow-Origin: *が文字起こしファイルに適しています。

表示を静かに壊すミス

これらはポッドキャストクライアントでエラーを出さずに失敗するため、診断が難しいです。

HTTPではなくHTTPS。 Apple PodcastsはTLSを使用しない文字起こしURLを静かにスキップします。最初からHTTPSを使い、リダイレクトはしないでください。

間違ったMIMEタイプ。 最も一般的な問題です。RSS属性だけでなく、サーバーまたはCDNレイヤーでContent-Type: text/vttを設定してください。一部のクライアントは宣言されたタイプよりもContent-Typeヘッダーを信頼します。

タグ内の間違ったSRT MIMEタイプ。 仕様値はapplication/x-subripです。application/srt(一般的ですが非公式なバリアント)を使用すると、一部のクライアントがファイルをスキップします。

言語属性の不一致。 チャンネルがenを指定しているのに文字起こしタグがen-USの場合、一部のアプリは表示を拒否します。フィードで使用している形式に合わせるか、チャンネルレベルの言語と重複する場合は属性を完全に省略してください。

空のキュー。 自動生成された文字起こしは、無音部分に空白のキューを出力することがよくあります。公開前に削除してください。一部のクライアントは不正なキューブロックで静かにエラーになります。

複数話者番組での話者ラベルの欠落。 Appleはラベルがない場合に汎用のフォールバックを表示します。公開前にポストプロダクションでラベルを付け直してください。ダイアリゼーションの仕組みと自動ラベリングに期待できることについては、話者ダイアリゼーションの解説を参照してください。

複数言語での公開

podcast:transcript要素はitemごとに複数回、言語ごとに1回出現できます。それぞれを一致するlanguage属性を持つ正しいファイルにポイントしてください。

<podcast:transcript
  url="https://example.com/transcripts/42-en.vtt"
  type="text/vtt"
  language="en"/>
<podcast:transcript
  url="https://example.com/transcripts/42-fr.vtt"
  type="text/vtt"
  language="fr"/>

Apple Podcastsは英語、デンマーク語、オランダ語、フィンランド語、フランス語、ドイツ語、イタリア語、ノルウェー語、ポルトガル語、スペイン語、スウェーデン語のトランスクリプトに対応しています。10時間を超えるエピソードはAppleによる文字起こしの対象外で、音楽の歌詞もAppleの表示からは除外されます。

よくある質問

SpotifyはRSSフィードのpodcast:transcriptタグを読み取りますか?

いいえ、直接は読み取りません。Spotifyは一部の番組について独自のトランスクリプトを生成し、再生画面やエピソードページに表示します。Spotifyが対応しているのは、トランスクリプトをRSS経由で外部に書き出すことです。Spotify for CreatorsでVTTまたはSRTファイルをアップロードすると(設定、次にトランスクリプト)、SpotifyはそれをRSSフィードに含めて他のアプリが読み取れるように配信できます。流れはSpotifyから他へ、であって、他からSpotifyへではありません。

RSSフィードではどのファイル形式を公開すべきですか?

VTTが最も安全な単一の選択肢です。Apple Podcasts(カスタムトランスクリプトの上書き用)、Pocket Casts、Castro、AntennaPod、Podcast Addict、その他の名前空間に対応したクライアントでサポートされています。SRTはそれに次ぐ選択肢です。JSONは再生中に単語をハイライトできるアプリにとって価値がありますが、RSSにリンクする唯一の形式として使うより、エピソードページに2つ目のファイルとして置くのが最適です。

SRTファイルにはどのMIMEタイプを使いますか?

Podcasting 2.0仕様ではSRTにapplication/x-subripを使用します。application/srt(よく使われる非公式なバリエーション)を使うと、一部のクライアントがファイルをスキップする可能性があります。CDNまたはサーバーでContent-Type: application/x-subripとしてファイルを配信し、RSSタグのtype属性にも同じ値を設定してください。

エピソードページにもトランスクリプトを載せる必要がありますか、それともRSSタグだけで十分ですか?

RSSタグはアプリ内での表示を処理します。エピソードページにトランスクリプト本文を公開するのは、別の価値あるステップです。音声は検索エンジンにインデックスされませんが、トランスクリプト本文はされます。ポッドキャストのアクセシビリティトランスクリプトの記事では、ページ上のトランスクリプトのSEOとアクセシビリティの利点を説明しています。両方やるべきです。アプリ内のリスナー向けにRSSタグ、発見可能性とスクリーンリーダー対応のためにページを。

出典

Try transcription free

Convert any audio or video to clean, unwatermarked text — speaker labels, timestamps, and AI summaries included. First 10 minutes free, no account.

Related Articles