|
項(xiàng)目語言:Python 開發(fā)歷時:一個月 為什么要開源:Those whom God wishes to destroy, he first makes mad. 用到的庫:
 首先是項(xiàng)目展示環(huán)節(jié): https://www.bilibili.com/video/av41314161/ 腳本處理示例↑ https://www.bilibili.com/video/av33882370 第一期工程之將人工篩選的視頻下載并處理成搞笑合集↑ https://www.bilibili.com/video/av36229376/ 第二期工程之將特定達(dá)人的視頻下載并處理成搞笑合集↑ https://www.bilibili.com/video/av34885421/ 第二期工程之將Q群沙雕圖處理成沙雕圖合集↑
 第三期工程之更新合集封面圖的處理方式↑
 第三期工程之自動識別美女的視頻,下載并處理成小姐姐合集(還沒開始做)↑ 然后是項(xiàng)目地址: github.com/hokaso/douyin2bilibili 各腳本文件詳解: douyin2bilibili_Collection.py:國內(nèi)抖音達(dá)人個人視頻合集(抖音+國內(nèi)+個人) douyin2bilibili_streamline.py:國內(nèi)抖音人工篩選視頻合集(抖音+國內(nèi)+篩選) douyin2bilibili_streamline_oversea.py:國外抖音人工篩選視頻合集(抖音+國際+篩選) pure_upload.py:僅通過分發(fā)平臺上傳的腳本 upload.exe&upload_bg.exe:分發(fā)視頻時調(diào)取的選擇文件腳本 GBK.ttf:處理封面圖時所用到的字體 youtube_upload.py:基于you-get的油管視頻轉(zhuǎn)載腳本 希望做成的所有功能一覽:
 其中已達(dá)成的目標(biāo)(除了上述的三個以外): 快手&抖音+國內(nèi)&國外+個人: github.com/muyangren907/Kwai_download_script 其中僅快手國際篩選未實(shí)現(xiàn)。 接下來是技術(shù)細(xì)節(jié): 1.視頻的抓?。鹤钤缙诘陌姹镜南螺d模塊,我使用了@Jack-Cherish的抖音爬蟲(Jack-Cherish/python-spider),在此表示感謝。其原理為,根據(jù)短視頻的分享鏈接,進(jìn)入相應(yīng)PC端網(wǎng)頁,提取原視頻鏈接并下載。后來發(fā)現(xiàn)國內(nèi)的token驗(yàn)證并不嚴(yán)謹(jǐn)(AppSign/douyin),故改為模擬手機(jī)端app發(fā)包并收集json,批量解析視頻鏈接后下載(個人合集),但這一招對簽名算法不同的國際版抖音app無效,故只能使用下一招:通過fiddler進(jìn)行手機(jī)抓包,提取json文件解析鏈接下載(muyangren907/Kwai_download_script)。 2.封面圖的處理:最早我僅僅通過(同和君Hocassian:做視頻還能開掛?如何讓電腦自己學(xué)會做視頻?。┻@篇文章中第九項(xiàng)的方法生成封面圖,后來覺得這樣的封面有些單調(diào),就改了算法,檢測到圖片的尺寸若小于20/27,就使用三圖模式(具體算法見下圖)。至于這一張圖和三張圖怎么獲取,這里就用到了moviepy.editer庫中VideoFileClip類的duration方法,獲取列表前三個視頻1/2時間段的視頻截圖,根據(jù)時間碼,用ffmpeg進(jìn)行截圖,然后去除黑邊,再合并。
  3.視頻背景圖的處理:首先肯定要有一張干凈的底層模板,在這層模板上我劃出了幾個自由填充的區(qū)域:Logo、簡介、標(biāo)題、二維碼(第一階段)、頭像、昵稱。對應(yīng)每個短視頻,生成相應(yīng)的背景圖片,相關(guān)技術(shù):PIL
 第一期的背景圖↑,后來由于視頻平臺會對包含二維碼的視頻限流,故第二期工程就改成了以下這種模式↓。
 詳細(xì)的圖片處理方法請直接參考我的代碼。 4.圖片與視頻的嵌合,以及單個視頻的合并:通過ffmpeg實(shí)現(xiàn),相關(guān)教程請參考: www.jianshu.com/p/b30f07055e2e
 5.視頻的分發(fā):如果一個一個平臺的傳,估計(jì)得累死,所以我選擇火星云分發(fā),基本支持國內(nèi)所有大型長視頻平臺。因?yàn)闆]找到網(wǎng)站的api,所以用了selenium,一個基于谷歌瀏覽器的自動化測試框架,可以模擬大部分人工操作流程。
 以上就是我腳本所有的內(nèi)容了,希望能來個大神幫忙寫個GUI啥的…… 6.自媒體運(yùn)營的技巧:最重要的,轉(zhuǎn)載的不要投原創(chuàng)!轉(zhuǎn)載的不要投原創(chuàng)!轉(zhuǎn)載的不要投原創(chuàng)!重要的事情說三遍!這個腳本給你們是用來引流的,不是用來薅平臺羊毛的!其次則是標(biāo)封的把控,這里有個教程可以分享給大家: 標(biāo)題黨是如何用這些招數(shù)把你當(dāng)寵物誘騙的!
7.油管一鍵轉(zhuǎn)載腳本:這個就沒啥好說的了,抓取油管的封面,再通過you-get抓取視頻,然后調(diào)取分發(fā)模塊。其中肯定會有人奇怪這一行:if(int(img.headers[‘content-length’]) > 1098),這是因?yàn)橛行├弦曨l,或者沒有刻意上傳高清封面圖的視頻,它的maxresdefault.jpg是這個樣子的: 這張圖的大小為1097,所以如果視頻本身就沒高清封面,那就不傳封面了,讓平臺的系統(tǒng)自己截取去~
|