项目语言:Python 开发历时:一个月 为什么要开源:Those whom God wishes to destroy, he first makes mad. 用到的库:
 首先是项目展示环节: https://www.bilibili.com/video/av41314161/ 脚本处理示例↑ 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,所以如果视频本身就没高清封面,那就不传封面了,让平台的系统自己截取去~
|