2012-12-23 28 views
18

我在從YouTube視頻中提取自動字幕時遇到問題。從YouTube視頻中提取自動字幕

我嘗試過使用http://video.google.com/timedtext?type=track&v=3wszM2SA12E&name=Automatic&lang=en方法,但那個方法只適用於那些已經命名軌道的視頻。例如,這個沒有任何指定軌道(只有自動標題)並且不加載:rrkrvAUbU9Y

有幾個網絡應用程序可以做到這一點(如http://www.serpsite.com/youtube-subtitles-download-tool/http://mo.dbxdb.com/),但我需要一個腳本,因爲我想用它來進行我的研究。

任何人有任何想法什麼是正確的方式來得到這個? YouTube的API有一些關於字幕的內容,但僅限於註冊用戶,而上述應用程序適用於所有視頻,我懷疑他們只是從頁面捕獲HTML代碼(儘管這也是可能的)。必須有一種方式...請幫助!

+1

是什麼,爲什麼你會不會使用API​​作爲一個註冊用戶,原因是什麼? – Drifter

+0

@Drifter:你問這個問題就好像擁有一個YouTube帳號是每個人的生日權利。只因爲你有一個,並不意味着每個人都可以擁有一個。許多人在法律上被禁止在終身使用YouTube帳戶。其他人被無理拒絕註冊。其他人在其他地方已經有足夠的帳戶,無法管理更多;保存憑證和擁有賬戶既是一種負擔,也是一種責任。其他人不喜歡被監控。 – 7vujy0f0hy

回答

1

關於從頁面獲取數據的好方法是使用file_get_contents,但這隻能工作如果視頻具有'CC'或字幕按鈕,但是當它可以從XML獲取所有文本元素不幸的是,由於其中一個'Youtube to caption'服務記錄了文件,因此需要youtuber啓用字幕才能獲取字幕,因此不幸的是,如果未啓用「CC」,則無法從視頻獲取字幕,但是如果您仍然希望可以使用file_get_contents on XML文件然後找到所有'文本'標籤,然後將其轉換爲標題。

1

你需要調用另一個API第一:http://video.google.com/timedtext?type=list&v=3wszM2SA12E

這會給你可用的曲目列表。在你的情況下,只有一個軌道可以獲得:id="0" name="Automatic" lang_code="en" lang_original="English" lang_translated="English" lang_default="true"

在這個特殊的視頻我只能由於某些原因地址軌道name=Automatic。但是,對於其他視頻它工作得很好:

http://video.google.com/timedtext?type=track&v=zenMEj0cAC4&id=0&lang=en