YouTube で HD画質の動画が見れる!

知ってる人はもっと前から知ってたみたいだけど、俺は今日初めて某所で知った。
1280x720 の解像度は今までのとは比べ物にならないほどキレイ。
ってか、1280x720 なんて俺の PC やテレビの解像度とほとんど変わらない。


見る方法は簡単で、アドレスの最後に「&fmt=22」とパラメータを渡してやれば OK。
ブラウザ上でフルスクリーンで見ることも可能だけど、俺の場合は動画によってカクつく。
そこで、ローカルに保存してから見ようとした。
保存方法は今までと同様ということで、 Python でダウンロードスクリプトを書いてみた。
Python は最近学び始めたばかりだから、Python の流儀にあっていない部分もあるかも。
標準入力から改行区切りの URL を流し込めば、勝手にカレントディレクトリにタイトル名.mp4で保存するというもの。
エラー処理は何にもやってない。

#!/usr/bin/python
# vim: set fenc=utf-8
from __future__ import with_statement
import sys, urllib2, re
from urlparse import urlparse, urlunparse
from contextlib import closing

re_title = re.compile(r'<title>YouTube - ([^<]+)</title>')
re_video = re.compile(r'"video_id": "([\w-]+)"')
re_t = re.compile(r'"t": "([\w-]+)"')

for line in sys.stdin:
  try:
    url = urlparse(line.strip())

    with closing(urllib2.urlopen(url.geturl())) as page:
      lines = page.readlines()

    title = [re_title.search(l).group(1) for l in lines if re_title.search(l)][0]
    swfargs = [l for l in lines if l.find('swfArgs') != -1][0]
    video_id = re_video.search(swfargs).group(1)
    t = re_t.search(swfargs).group(1)

    mp4url = urlunparse((url[0], url[1], 'get_video', url[3], 'fmt=22&video_id='+video_id+'&t='+t, url[5]))

    print title

    with open(title+'.mp4', 'w') as f:
      f.write(urllib2.urlopen(mp4url).read())

  except Exception:
    pass

特にHD画質を実感できる動画をいくつか。
Nature Time Lapse 2 -微速度撮影動画まとめ2- (HD 720p) - YouTube
JVC GZ-HD6 DEMO PAL - 03rd Upload downscale to 1280 x 720 WMV! - YouTube
YouTube - ♪ 雪の華 HD

それと、アニメOPをいくつか。
YouTube - Toradora! とらドラ! OP プレパレード (SRS WOW)
YouTube - 狼と香辛料 OP HD test
YouTube - 喰霊 零 garei zero OP very high quality
YouTube - Clannad ~AFTER STORY~ OP HQ