というわけで、どうやればいいか調べます。
まず、youtubeでつかっているデータについて調べます。
とりあえず、iPhoneとiMacのsafariを接続して、データアクセスについて調べました。
http://r11---sn-3pm7en7k.c.youtube.com/videoplayback?id=01e3e19fd.....
というURLであることがわかりました。
以前の調査から、youtubeのアドレスは一度アクセス可になった場合、同じIPアドレスからのアクセスは許可されることになるみたいです。
というわけで、同じLANネットワークにあるところからこのURLをたたいてみます。
手持ちのiMacにはwgetコマンドがはいっていないみたいだったので、ぱぱっとjavaのプログラムを書いてみました。
ものすごい乱暴ですが、こんなコード
String url = "http://r11---sn-3pm7en7k.c.youtube.com/videoplayback?id=01e3e19fd......youtube_mobile";
URL urlObj;
HttpURLConnection urlCon;
urlObj = new URL(url);
urlCon = (HttpURLConnection)urlObj.openConnection();
urlCon.setRequestMethod("GET");
ReadableByteChannel rbc = Channels.newChannel(urlCon.getInputStream());
FileChannel fc = new FileOutputStream("test.mp4").getChannel();
while(true) {
ByteBuffer buffer = ByteBuffer.allocate(65536);
rbc.read(buffer);
buffer.flip();
if(buffer.remaining() == 0) {
break;
}
fc.write(buffer);
}
fc.close();
rbc.close();
urlCon.disconnect();
これでとりいそぎ、test.mp4が取得でき、vlcで再生してみたところ、問題なく再生できました。
内容を確認してみたところ、やっぱりmp4でしたね。
Video: mpeg4 (Simple Profile) 映像データがh.264じゃなかったのが少々気になりますが・・・
一応、万一httpLiveStreamingでiPhoneがやりとりしていたら困るので(そっちをとった方が音声のみにできる公算がたかかった)、wiresharkで確認してみましたが、やっぱりmp4のようでした。
ここまでで、youtubeのデータはmp4であることがほぼ決定的になりました。
0 件のコメント:
コメントを投稿