【自媒體營銷神器】一鍵自動下載短視訊並分發至長視訊平臺指令碼開源展示

Hocassian發表於2019-01-21

專案語言:Python
開發歷時:一個月
為什麼要開源:Those whom God wishes to destroy, he first makes mad.
用到的庫:
在這裡插入圖片描述
首先是專案展示環節:
https://www.youtube.com/watch?v=5kG-wHL4y6k
指令碼處理示例↑
https://www.bilibili.com/video/av33882370
第一期工程之將人工篩選的視訊下載並處理成搞笑合集↑
https://www.bilibili.com/video/av36229376/
第二期工程之將特定達人的視訊下載並處理成搞笑合集↑
https://www.bilibili.com/video/av34885421/
第二期工程之將Q群沙雕圖處理成沙雕圖合集↑
在這裡插入圖片描述
第三期工程之更新合集封面圖的處理方式↑
在這裡插入圖片描述
第三期工程之自動識別美女的視訊,下載並處理成小姐姐合集(還沒開始做)↑
然後是專案地址:
github.com/hokaso/douyin2bilibili
各指令碼檔案詳解:
douyin2bilibili_Collection.py:國內抖音達人個人視訊合集(抖音+國內+個人)
douyin2bilibili_streamline.py:國內抖音人工篩選視訊合集(抖音+國內+篩選)
douyin2bilibili_streamline_oversea.py:國外抖音人工篩選視訊合集(抖音+國際+篩選)
pure_upload.py:僅通過分發平臺上傳的指令碼
upload.exe&upload_bg.exe:分發視訊時調取的選擇檔案指令碼
GBK.ttf:處理封面圖時所用到的字型
youtube_upload.py:基於you-get的油管視訊轉載指令碼
希望做成的所有功能一覽:
在這裡插入圖片描述
其中已達成的目標(除了上述的三個以外):
快手&抖音+國內&國外+個人:
github.com/muyangren907/Kwai_download_script
其中僅快手國際篩選未實現。
接下來是技術細節:
1.視訊的抓取:最早期的版本的下載模組,我使用了@Jack-Cherish的抖音爬蟲(Jack-Cherish/python-spider),在此表示感謝。其原理為,根據短視訊的分享連結,進入相應PC端網頁,提取原視訊連結並下載。後來發現國內的token驗證並不嚴謹(AppSign/douyin),故改為模擬手機端app發包並收集json,批量解析視訊連結後下載(個人合集),但這一招對簽名演算法不同的國際版抖音app無效,故只能使用下一招:通過fiddler進行手機抓包,提取json檔案解析連結下載(muyangren907/Kwai_download_script)。
2.封面圖的處理:最早我僅僅通過(同和君Hocassian:做視訊還能開掛?如何讓電腦自己學會做視訊!)這篇文章中第九項的方法生成封面圖,後來覺得這樣的封面有些單調,就改了演算法,檢測到圖片的尺寸若小於20/27,就使用三圖模式(具體演算法見下圖)。至於這一張圖和三張圖怎麼獲取,這裡就用到了moviepy.editer庫中VideoFileClip類的duration方法,獲取列表前三個視訊1/2時間段的視訊截圖,根據時間碼,用ffmpeg進行截圖,然後去除黑邊,再合併。
在這裡插入圖片描述在這裡插入圖片描述
3.視訊背景圖的處理:首先肯定要有一張乾淨的底層模板,在這層模板上我劃出了幾個自由填充的區域:Logo、簡介、標題、二維碼(第一階段)、頭像、暱稱。對應每個短視訊,生成相應的背景圖片,相關技術:PIL
在這裡插入圖片描述
第一期的背景圖↑,後來由於視訊平臺會對包含二維碼的視訊限流,故第二期工程就改成了以下這種模式↓。
在這裡插入圖片描述
詳細的圖片處理方法請直接參考我的程式碼。
4.圖片與視訊的嵌合,以及單個視訊的合併:通過ffmpeg實現,相關教程請參考:
www.jianshu.com/p/b30f07055e2e
在這裡插入圖片描述
5.視訊的分發:如果一個一個平臺的傳,估計得累死,所以我選擇火星雲分發,基本支援國內所有大型長視訊平臺。因為沒找到網站的api,所以用了selenium,一個基於谷歌瀏覽器的自動化測試框架,可以模擬大部分人工操作流程。
在這裡插入圖片描述
以上就是我指令碼所有的內容了,希望能來個大神幫忙寫個GUI啥的……
6.自媒體運營的技巧:最重要的,轉載的不要投原創!轉載的不要投原創!轉載的不要投原創!重要的事情說三遍!這個指令碼給你們是用來引流的,不是用來薅平臺羊毛的!其次則是標封的把控,這裡有個教程可以分享給大家:
標題黨是如何用這些招數把你當寵物誘騙的!

7.油管一鍵轉載指令碼:這個就沒啥好說的了,抓取油管的封面,再通過you-get抓取視訊,然後調取分發模組。其中肯定會有人奇怪這一行:if(int(img.headers[‘content-length’]) > 1098),這是因為有些老視訊,或者沒有刻意上傳高清封面圖的視訊,它的maxresdefault.jpg是這個樣子的:在這裡插入圖片描述

這張圖的大小為1097,所以如果視訊本身就沒高清封面,那就不傳封面了,讓平臺的系統自己擷取去~

在這裡插入圖片描述

相關文章