ビデオトラックを破棄しながらメディアストリームのオーディオ部分のみの選択をサポートする方法でYoutubeストリーミングプロトコルを柔軟に管理できるAndroidアプリが必要な場合は、VLC for Androidに注目してください。まだ「開発中」ですが、おそらく「オーディオのみ」の機能に対処します。
より技術的な観点からは、問題をメディアストリーミングRTSPの利用可能なYoutubeネットワークプロトコルに分解するのに役立ちます。。RTSP仕様により、クライアントはDESCRIBEコマンドを使用して、サーバーがSDPデータセグメントで応答する要求を作成できます(詳細を参照)。Youtubeサーバーは、さまざまなプロトコルで応答し、基礎となるストリームを送信します。これらのストリームは、さまざまなエンコーディング(オーディオ用、ビデオ用)を使用して、ネットワーク経由でメディアビットをクライアントに転送します。モバイルネットワークでは、未使用のビデオストリームのネットワーク要件が多いため、ビデオを破棄する前にオーディオとビデオの両方のトラックを受信してオーディオのみを再生するためにyoutubeに移動する機能はお勧めできません。さらに技術的なドリルダウンを行うと、ネットワークの非効率性を回避できます。
Youtubeが遵守しているRTSPおよびSDP規格により、ストリーミングクライアント(Androidデバイス)は、メディアストリーミングを行うネットワーク接続設定に関するクライアント/サーバーハンドシェイクステップおよびネゴシエーションステップ中にのみオーディオを要求できます。この場合、ビデオは送信されず、Androidプレーヤーは音声のみのストリームで構成されます。この「youtube audio only」シナリオのCLIコマンドの詳細とプロトコルの詳細を次に示します。
特定の動画のYouTube形式1の音声のみのトラックは、次のRTSP URIで入手できます。
rtsp://v8.cache8.c.youtube.com/CigLENy73wIaHwlcw_gs85OUchMYDSANFEgGUgx1c2VyX3VwbG9hZHMM/0/0/0/video.3gp
ビデオ全体(オーディオトラックとビデオトラック)のRTSP URIから、次のCLI式は、2つのメディアクライアントopenRTSPとmPlayerを使用してYoutubeに移動し、そこでchannel = 1のみを要求してYoutubeオーディオトラックだけをGETS / PLAYSします。
./openRTSP -a rtsp://v8.cache8.c.youtube.com/CigLENy73wIaHwlcw_gs85OUchMYDSANFEgGUgx1c2VyX3VwbG9hZHMM/0/0/0/video.3gp | ./mplayer -cache 8092 - -rawaudio channels=1:rate=8000:samplesize=2:format=0x73616D72
このCLI式については、下部のリンクでさらに説明します。
Youtubeの「フィード」は、上記のRTSP URIを含む、Youtubeビデオで利用可能なストリーム形式を説明しています。Youtubeストリーミング形式の技術的な説明については、長い表の「形式」 1,5,6のエントリを参照してください。
次のリクエストは、特定の動画で利用可能なさまざまな形式のRTSP URIを含むフィードをYoutubeから取得します。
http://gdata.youtube.com/feeds/api/users/rowntreerob/uploads?vq=cpST8yz4w1w&prettyprint='true'
オーディオトラックだけをストリーミング/再生できるように、特定のyoutubeビデオに対してSDPの完全な説明が要求される、接続されたRTSPセッションの詳細はここにあります。
上記のリンクの番号付き行のキー:
82 – the RTSP DESCRIBE request
101 – the SDP response
103 – video track’s format
116 – the attributes describing the audio track
line 165 – the audio track setup by the player
184 – the audio-only playback
201 – using a separate CLI expression this is playback of a previous download on just the audio track