搜索关键词采集YouTube视频字幕
使用python采集YouTube視頻字幕
本篇博客純干貨!!!
最近接到leader安排的采集任務(wù),抓取采集世界上最大的視頻共享網(wǎng)站YouTube的視頻字幕。
分析目標(biāo)網(wǎng)站,開始抓包
當(dāng)我打開視頻鏈接點(diǎn)擊顯示字幕按鈕時,通過瀏覽器抓取到timedtext這樣的一個請求,而返回的內(nèi)容正式我想要的數(shù)據(jù)——每個時間點(diǎn)的字幕。
分析該URL有視頻ID、signature、key、expire等參數(shù),每次發(fā)生變化的是signature,開始通過js突破該參數(shù)。過程這里不做詳細(xì)描述。
終于在該視頻源代碼中找到這樣一段js
"playerCaptionsTracklistRenderer\":{\"captionTracks\":[{\"baseUrl\":\"https:\/\/www.youtube.com\/api\/timedtext?xorp=True\\u0026signature=DC15F46CCF5A97B616CFF6EA13626BC34E24B848.454E61B37E4E1AE37BF2C83F311D8EB362B165AA\\u0026hl=zh-CN\\u0026sparams=caps%2Cv%2Cxoaf%2Cxorp%2Cexpire\\u0026expire=1566051203\\u0026caps=\\u0026key=yttt1\\u0026xoaf=1\\u0026v=7j0xuYKZO4g\\u0026lang=en\\u0026name=English\",原來一直費(fèi)盡心思想解析的URL暴露在源碼中了,格式化代碼后知道他是一段json串,很多視頻信息都在該json中,如發(fā)布時間、標(biāo)題、簡介、點(diǎn)擊量等;心中的小激動?
接下來,通過正則匹配需要的URL
ytplayer_config = json.loads(re.search('ytplayer.config\s*=\s*([^\n]+?});', response.text).group(1)) caption_tracks = json.loads(ytplayer_config['args']['player_response'])['captions']['playerCaptionsTracklistRenderer']['captionTracks'] for c in caption_tracks:url = c["baseUrl"] # 在url后拼接上&tlang=zh-Hans返回的字幕為中文,&tlang=en-Hans返回的字幕為英文最后得到字幕URL通過python請求后解析拿到字幕數(shù)據(jù)。大功告成
有字幕的視頻才會有baseUrl這個值,沒有字幕的視頻這樣取會報異常的哦~
YouTube列表翻頁
字幕解析出來了,下一步批量采集需要的視頻字幕。
需求:
分析:
視頻翻頁是基于ajax請求來的,源碼里面的信息始終都是第一頁的數(shù)據(jù), ok 那既然這樣,我們來分析ajax請求,我喜歡用谷歌瀏覽器,打開開發(fā)者工具,network,來抓包。 鼠標(biāo)一直往下拉,會自動請求,是個post請求,一看就是返回的視頻信息。
看到這里很高興,離勝利已經(jīng)不遠(yuǎn)了。但,我們先來看下headers 以及發(fā)送的post參數(shù),看了之后 就一句 wtf。。。
一萬個羊駝在奔騰,我把那些加密的參數(shù)都標(biāo)記了,前后端交互,既然是發(fā)過去的數(shù)據(jù),那肯定已經(jīng)在前端產(chǎn)生了,至于什么產(chǎn)生的,那就要一步一步分析來了,最后。對 我沒有分析出來。。。剛開始挨著挨查看js文件,參數(shù)的確是在js里面產(chǎn)生的,但。。。tmd寫的太復(fù)雜了。。。能力有限,解決不了。難道就這樣放棄了嗎。肯定不會,不然 各位也不會看到這篇文章了。于是,我靈機(jī)一動,在地址欄里面輸入&page=結(jié)果,真的返回視頻了。。。臥槽 哈哈哈,我當(dāng)時真是很開心呢。因?yàn)榍岸隧撁嫔喜]有翻頁按鈕,沒想到竟然還真的可以這樣翻頁。。。哈哈
接下來就是匹配每頁的視頻鏈接 – 訪問 – 獲取字幕
完活 交差 回家 吃飯 睡覺咯
感謝觀看!
總結(jié)
以上是生活随笔為你收集整理的搜索关键词采集YouTube视频字幕的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java上传文件到sftp服务器
- 下一篇: 基于JavaWeb实现网上图书商城系统