2010.4.1 よりYouTubeのプレイヤーが変わったため、Ubuntu9.04のYouTubeプラグインがうまく動かなくなりました。
そのため、/etc/lib/plugin/youtube/youtube.py 以下のような修正を施しました。
■YouTubeクラスのresolve_t_param関数を以下に置き換え
1. この変更はyoutube-dl.pyを元にしている。
2. この変更はyanbe.diffさんのパッチを当てた上で行っている。
- http://subtech.g.hatena.ne.jp/y_yanbe/20090423/1240550210
3. 以下はタブを空白4文字で記述している。使うときにはタブに変換する必要がある。
こんな感じ? %s/ {4}/\t/g
そのため、/etc/lib/plugin/youtube/youtube.py 以下のような修正を施しました。
■YouTubeクラスのresolve_t_param関数を以下に置き換え
1. この変更はyoutube-dl.pyを元にしている。
2. この変更はyanbe.diffさんのパッチを当てた上で行っている。
- http://subtech.g.hatena.ne.jp/y_yanbe/20090423/1240550210
3. 以下はタブを空白4文字で記述している。使うときにはタブに変換する必要がある。
こんな感じ? %s/ {4}/\t/g
def resolve_t_param (self, youtube_id):
"""We have to get the t parameter from the actual video page, since Google changed how their URLs work"""
print "Start resolve_t_param()"
# Get video info
video_info_url = 'http://www.youtube.com/get_video_info?&video_id=%s&el=detailpage&ps=default&eurl=&gl=US&hl=en' % youtube_id
print "T: video_info_url = ", video_info_url
stream = urllib2.urlopen(video_info_url)
video_info_webpage = stream.read ()
if video_info_webpage == "":
print "Error : get_video_info url=", video_info_url
return ""
mobj = re.search(r'(?m)&token=([^&]+)(?:&|$)', video_info_webpage)
if (mobj == None):
print "Error :get token"
print video_info_webpage
return ""
token = urllib.unquote(mobj.group(1))
if self.debug:
print "t_param = ", token
return token