在我启动的项目“ reddit到文本到语音” YouTube视频中的YouTube趋势之后,该项目可以创建一个程序,该程序可以自动化接收,生成和上传这些视频的过程,并尽可能少地干预。完成该项目花了4个月的时间,由3个单独的程序组成,这些程序同时工作以完成此任务。
这个想法是最大程度地减少手动干预,并自动化所有琐碎的任务。但是,该过程不能100%自动化。例如,在其中带有链接的评论无法保留,因为由于TTS,视频的质量将由视频的质量组成。此外,尽管评论可能会有大量选票,但对于YouTube视频而言,它可能会令人反感,因此不安全,因此必须删除。缩略图虽然部分生成,但必须进行编辑,以创建任何类型的吸引观众以单击您的视频。视频的标题也必须是点击诱饵,才能受到任何关注。我试图使用客户端程序简化手动过程,大约需要30分钟才能创建6个视频(可以在24小时内使用YouTube数据API上传的最大视频)。
我生成的一些视频:
https://www.youtube.com/watch?v=xxdkmhyxcsq
https://www.youtube.com/watch?v=aw0yjixxnxi&t=35s
完成视频的过程涉及:
示例reddit文本到语音频道:
https://www.youtube.com/watch?v=izsxhx64pgq https://www.youtube.com/watch?v=vzdtuap2ztw
将它们放入YouTube机器人视频生成器目录中的名为“资产”的文件夹中。
此外,我通过项目部分改变了许多设计方面的想法,因此某些文件被奇怪地命名,并且在这里和那里都有未使用的代码。我将不再更新代码,但是请随时使用。
检查依赖项.txt
要轻松安装大多数Python依赖性,请在克隆后运行以下命令(有些可能需要手动安装):
pip install -r requirements.txt
Reddit文本到语音视频的最新趋势(通常)由一个非常简单的公式组成:
随机选择一首歌。我已经下载了约40首歌曲Kevin Macleod Royality免费歌曲,以随机选择。
https://www.youtube.com/watch?v=ccpyyrds-qo&list = plbzgr7h3fyus3lvitxtfaigv601ukuhjx
视频中使用的所有资产都可以在此处下载:
http://www.mediafire.com/file/hpu1j1k1k1avwp9dj/youtube_bot_assets.zip/file
它们必须放在视频生成器程序中的名为“资产”的文件夹中。
该项目由三个单独的程序组成:
该程序包含用于连接到客户端程序的(1)套接字服务器,以及用于连接到视频生成器客户端的(2)套接字服务器。此外,此程序还将每小时从Reddit获取新脚本,还将更新尚未编辑的现有脚本。
(1)此套接字服务器将将RAW脚本从数据库发送到手册审核程序(请参见下文)。然后,它将接收这些审核的脚本,并使用最终脚本更新数据库,其中包括缩略图,描述和标题。服务器可以处理多个客户端,因此多个人可以编辑这些脚本。
(2)视频生成器服务器目前仅旨在处理一个视频生成器客户端。该服务器的原始计划是处理多个视频生成器客户端分布在多台计算机之间的。但是,我发现一台计算机足以满足我的所有视频生成需求,因此我决定将其硬编码仅为一个客户。该服务器的目的是将最终脚本从数据库发送到视频生成器客户端。
该程序将从YouTube Bot Video Generator Server接收最终的视频脚本,其中包括缩略图,描述,标签和标题。这些脚本将生成一个MP4文件中,然后在计划发布时间上传到YouTube(当前在GMT下午6点,下午6点随机随机 - 推荐的时间上传到YouTube)。收到脚本后,它将生成,然后该程序将等到它具有足够的API信用来上传,请检查最后6个视频何时上传。
GMT上午8点重置API配额。我已经计算出,上传每个视频将花费1658个积分。您每天最多可以使用10 000个学分。这意味着从理论上讲,您每天可以上传6个视频。但是,实际上,我能够上传5个视频,有时第六个视频会上传,但是没有足够的配额可以上传缩略图,在这种情况下,这将需要手动干预以手动上传缩略图。这些视频已上传到我只能与Python 2.7合作的YouTube-Upload上传。它使用subprocess.check_call调用,并根据需要指定Python版本和参数(下面的链接)。
一旦视频成功上传,其状态就可以完成,并在上传时间内完成,以便该程序可以在当天上载了多少视频,以避免超过配额使用情况。
YouTube数据API信息https://developers.google.com/youtube/v3/getting-started youtube-upload(python 2.7)
迄今为止,该项目最具挑战性的方面之一是将文本置于语音上正常工作。我想使用Daniel MLG软扫描文本进行语音语音 - 在大多数文本中发现的语音reddit视频。我认为这是该项目的重要组成部分,因为这种声音非常可识别,并且(在我看来)是可用演讲的最佳声音文字之一。我使用balabolka的命令行版本生成.wav文件,然后在视频生成程序中与不同的帧同步。
Balabolka http://www.cross-plus-a.com/balabolka.htm有关如何获得Daniel MLG语音https://www.youtube.com/watch?v=yj3dhtnyoty
客户端程序是类似火种的左右滑动过程,可以过滤视频中不包含的注释。它还允许用户编写标题并上传视频的缩略图以及编辑描述和标签,尽管标题,描述和标签部分生成如下:标题:默认值是帖子标题说明:默认情况下是一个带有其内部标题的生成模板,并且夫妇标签上的所有基本标签:我从流行的文本complion等counterred等等等等。这些可以编辑。缩略图的模板也是部分生成的。有支票可以确保所有这些字段的字符数量不超过,例如标题必须低于100个字符
视频的最终内容包括编辑脚本,缩略图,标签,描述和视频设置(可以在编辑过程中更改视频生成器模板的某些功能,例如背景颜色,文本大小,线条宽度等。我通常保留默认值,因此并没有真正使用过它),然后将其发送到该服务器上的服务器,从而将其发送到该数据库中。
mysql
脚本的存储和它们相关信息是通过MySQL数据库完成的。这是我第一次将MySQL数据库用于一个项目,我在SQL上并不出色,我学会了让事情变得有效的必要条件。我使用了三张表“用户”,“视频生物”和“脚本”
“用户”表
最初,我计划创建一个广泛的登录系统,用户拥有编辑统计信息,查看谁在线等。现在唯一的用途是跟踪哪些用户正在编辑哪些视频以防止相同的视频编辑和上传两次。密码在客户端加密MD5
“脚本”表
最重要的表包含所有脚本信息。状态字段对于跟踪脚本应该在哪里非常重要。
-raw:脚本可用于编辑
-editing:在此状态下,该脚本正在编辑,无法由任何其他用户编辑
-Complete:脚本已完成编辑,并将发送到视频生成器客户端
-successupload:该脚本已成功上传到YouTube
“ Videogogenerators”表
像用户一样,我设计了客户端以使用用户名和密码登录。密码在客户端加密MD5
如果这些表尚不存在,这些表将在称为“ YouTubebot”的数据库中自动创建。
一次登录后,将自动下载并自动保存您的Google API帐户的凭据(您的浏览器窗口将打开,请求Google帐户登录):viveouploader.py-py-> get_credentials()