オルタナティブ・ブログ > プログラマー社長のブログ >

プログラミングでメシが食えるか!?

youtube動画の調査:その3

»

読んでいる方もいらっしゃるようなので、気をよくして3回連続で。。

youtube動画をiPhoneやAndroid端末で視聴すると、MP4形式で、しかも全体取得するのに途中で切る、というところまで昨日書きましたが、さらに不思議だったのが、同じ動画を視聴しても微妙にデータが異なることがあるという点です。

そこで、パケットキャプチャしたデータからレスポンスをファイルに切り出し、HTTPヘッダを取り除いてMP4データのみにして調べてみました。

MP4データフォーマットは、「4バイトのデータ長+4バイトのデータタイプ+データ本体」という塊が基本です。データ本体の中にさらにネストされて同じ構造が入ることもできます。

iOS7のsafariでyoutubeを視聴したときのMP4データを、プログラムを作って解析してみると以下のような感じでした。

len=28,type=ftyp:mp42....isomavc1mp42
len=7332,type=moov
  len=108,type=mvhd:バイナリデータ
  len=21,type=iods:バイナリデータ
  len=3497,type=trak
    len=92,type=tkhd:バイナリデータ
    len=3397,type=mdia
      len=32,type=mdhd:バイナリデータ
      len=66,type=hdlr:........soun............(C) 2007 Google Inc. v08.13.2007..
      len=3291,type=minf
        len=16,type=smhd:バイナリデータ
        len=36,type=dinf:....dref............url ....
        len=3231,type=stbl
          len=91,type=stsd:バイナリデータ
          len=24,type=stts:バイナリデータ
          len=40,type=stsc:バイナリデータ
          len=2920,type=stsz:バイナリデータ
          len=148,type=stco:バイナリデータ
          len=2943,type=trak
            len=92,type=tkhd:バイナリデータ
            len=2843,type=mdia
              len=32,type=mdhd:バイナリデータ
              len=66,type=hdlr:........vide............(C) 2007 Google Inc. v08.13.2007..
              len=2737,type=minf
                len=20,type=vmhd:バイナリデータ
                len=36,type=dinf:....dref............url ....
                len=2673,type=stbl
                  len=161,type=stsd:バイナリデータ
                  len=24,type=stts:バイナリデータ
                  len=56,type=stss:バイナリデータ
                  len=244,type=stsc:バイナリデータ
                  len=2032,type=stsz:バイナリデータ
                  len=148,type=stco:バイナリデータ
                  len=755,type=udta
                    len=747,type=meta:.......!hdlr........mdirappl.............ilst....
                    gsst....data........0....gstd....data........17251...8
                    gssd...0data........B4A7DAB05HH1381970805501593.........
                    gspu....data.......................................................
                    ...................................................................
                    ..................gspm....data.....................................
                    ...................................................................
                    ....................................
                    gshh....data........r20---sn-ogueyn7s.c.youtube.com................
                    ...................................................................
                    ...................................................................
                    ...................................................................
                    ........
                    len=969494,type=mdat:バイナリデータ

まあ、プログラムをわざわざ作らなくても、探せばツールはいくらでもあり、次のように情報が表示されました。


完全名称 : \\vmware-host\Shared Folders\VM共有\i-s.mp4
フォーマット : MPEG-4
プロファイル : Base Media / Version 2
コーデック ID : mp42
サイズ : 954 KiB
ながさ : 16秒 833秒
OBR モード : VBR モード
オーバルビットレート : 464 Kbps
エンコード日 : UTC 2009-01-18 07:05:50
タグ付け日 : UTC 2009-01-18 07:05:50
gsst : 0
gstd : 17251
gssd : B4A7DAB05HH1381970805501593
gshh : r20---sn-ogueyn7s.c.youtube.com

この中の、gssdがどうやら視聴するたびに変わる気がするのですが、gsst,gstd,gssd,gshhがどういう意味を持っているのかは調べてもあまり詳しくは出ていませんでした。。

「Gaf spam spam thread, Gaf spam timedog, gaf spam spam devo, and gafhatesworld star hip hop」

と書かれている情報がありましたが、何のことやら・・・

ということで、わかったようなわからないような、youtubeのMP4データでした。

今日は咳が止まらなくなり、会社で菌をまき散らしても迷惑なので、病院に行ってから自宅でずっとこんな調査をしていたのでした。。

Comment(0)