2014年2月5日 星期三

XBMC裡 Youtube無法登入解決辦法 (在Ubuntu 12.04 LTS)

環境Ubuntu 12.04 LTS  XBMC 12.3  Youtube 4.4.6

雖然XBMC上Youtube外掛是可以用、也可觀看影片。
XBMC只有對岸的拼音輸入法,在搜尋上是有點困難
但可以用電腦搜尋後,再加入"稍後觀看"清單裡。
一樣可以在XBMC上撥放!
這些就必須要有登入才能使用!!

實際上、它應該可以在美國地區可以正常使用。
美國地區是使用ANSI字碼 ,在台灣連Youtube是使用UTF-8,
在登入時、會出現字碼轉換的問題,它自己本身沒有做字碼轉換。
所以在XBMC的Youtube設定好帳號密碼  會出現"plugin.video.youtube腳本錯誤"。

修改"~/.xbmc/addons/plugin.video.youtube/YouTubeCore.py"
大約在第399行那  有一段是...
        if get("url_data"):

            request = urllib2.Request(link, urllib.urlencode(url_data))
            request.add_header('Content-Type', 'application/x-www-form-urlencoded')
在"if get("url_data"):"下插入程式碼
            urldata = get("url_data")
            url_data = {}

            for key in urldata:
                url_data[key.encode('UTF-8')] = urldata[key].encode('UTF-8')

也就是變成這樣.....
        if get("url_data"):
            urldata = get("url_data")
            url_data = {}

            for key in urldata:
                url_data[key.encode('UTF-8')] = urldata[key].encode('UTF-8')

            request = urllib2.Request(link, urllib.urlencode(url_data))
            request.add_header('Content-Type', 'application/x-www-form-urlencoded')

解決字碼問題後,plugin.video.youtube還是會出現Flase錯誤。
原因應該是Youtube網頁有修改過、要搜尋Html的Tag不符  (不確定是不是美國Youtube與台灣Youtube不相同)

修改"~/.xbmc/addons/plugin.video.youtube/YouTubeLogin.py"
尋找   (在第199行)
nick = self.common.parseDOM(ret["content"], "p", attrs={"class": "masthead-expanded-acct-sw-id2"})
修改成
nick = self.common.parseDOM(ret["content"], "span", attrs={"id": "yt-masthead-user-displayname"})

修改後、就可以正常登入。

youtube scripts是用python寫的
python是很重視tab跟enter  跟C/C++、Java 用"{}"差很多   說實在的  我也不太會  >"<
修改時要注意python的編寫規則....

參考文章
http://wiki.xbmc.org/index.php?title=Add-on:YouTube
https://code.google.com/p/youtubexbmc/issues/detail?id=103
https://code.google.com/p/youtubexbmc/issues/detail?id=115

沒有留言:

張貼留言