REDDIT的刮擦帖子,并自动生成YouTube视频和缩略图
请查看我的YouTube频道,例如此存储库制作的视频:
您对犯罪的人有什么犯罪? 
什么节目没有讨人喜欢的角色? 
使用此存储库生成的YouTube频道:
如果您的YouTube频道是使用此存储库生成的,并且您希望上面列出,请用YouTube频道URL和频道名称在此问题上进行评论,并提及您希望在主读数文件中列出的。
观看Python Reddit YouTube机器人教程视频: 
首先安装这些先决条件组件:
git -https://git-scm.com/download/win
Python 3.10-https://www.python.org/ftp/python/3.10.0.0/python-3.10.0.0-amd64.exe
Microsoft C ++构建工具-https://visualstudio.microsoft.com/visual-cpp-build-tools/
ImageMagick -https://imagemagick.org/script/download.php#windows
git clone [email protected]:alexlaverty/python-reddit-youtube-bot.git
cd python-reddit-youtube-bot
生成reddit praw tokens -https://www.reddit.com/prefs/apps/
创建一个auth-example.py文件的副本,并将其命名为Auth.py:
copy config/auth-example.py config/auth.py
更新auth.py文件以包含您在上一步中生成的Reddit Auth令牌。
pip install -r requirements.txt
通过运行:安装和配置剧作家:
playwright install
运行Python脚本:
python app.py
完成后,视频将生成videos文件夹,并将命名为final.mp4
如果要添加视频背景,请安装YT-DLP:
YT-DLP
然后创建一个backgrounds文件夹并运行以下命令:
mkdir -p assets/backgrounds
cd assets/backgrounds
yt-dlp --playlist-items 1:10 -f 22 --output "%(uploader)s_%(id)s.%(ext)s" https://www.youtube.com/playlist?list=PLGmxyVGSCDKvmLInHxJ9VdiwEb82Lxd2E
您可以通过传递--help来查看可用参数:
python app.py --help
##### YOUTUBE REDDIT BOT #####
usage: app.py [-h] [-l VIDEO_LENGTH] [-o] [-s] [-t] [-u URL]
options:
-h, --help show this help message and exit
-l VIDEO_LENGTH, --video-length VIDEO_LENGTH
Set how long you want the video to be
-o, --disable-overlay
Disable video overlay
-s, --story-mode Generate video for post title and selftext only, disables user comments
-t, --thumbnail-only Generate thumbnail image only
-u URL, --url URL Specify Reddit post url, seperate with a comma for multiple posts.
或者,如果要为特定的reddit帖子生成视频,则可以通过--url param:
python app.py --url https://www.reddit.com/r/AskReddit/comments/hvsxty/which_legendary_reddit_post_comment_can_you_still/
或者,您可以通过分离逗号来完成多个URL,即:
python app.py --url https://www.reddit.com/r/post1,https://www.reddit.com/r/post2,https://www.reddit.com/r/post3
如果您只想生成缩略图,则可以指定--thumbnail-only模式,这将跳过视频汇编过程:
python app.py --thumbnail-only
如果要启用新闻播音员,请编辑settings.py并设置:
enable_newscaster = True

如果NewCaster视频具有绿色屏幕,则可以使用以下设置将其删除,请使用眼滴来获取Greenscreen的RGB颜色,并将其设置为将其删除:
newscaster_remove_greenscreen = True
newscaster_greenscreen_color = [1, 255, 17] # Enter the Green Screen RGB Colour
newscaster_greenscreen_remove_threshold = 100
您可以在settings.py文件中自定义很多选项:
指定您要刮擦哪些子列表:
subreddits = [
"AmItheAsshole",
"antiwork",
"AskMen",
"ChoosingBeggars",
"hatemyjob",
"NoStupidQuestions",
"pettyrevenge",
"Showerthoughts",
"TooAfraidToAsk",
"TwoXChromosomes",
"unpopularopinion",
"confessions",
"confession"
]
排除的子列表:
subreddits_excluded = [
"r/CFB",
]
通过指定的关键字过滤reddit帖子
banned_keywords =["my", "nasty", "keywords"]
将文本更改为您要使用的语音引擎,请注意AWS Polly所需和AWS帐户和授权令牌,并且可以产生成本:
支持语音引擎:
# choices "polly","balcon","gtts"
voice_engine = "polly"
生成的Reddit视频总数
total_posts_to_process = 5
接下来的设置将自动过滤帖子
跳过reddit帖子少于此更新
minimum_submission_score = 5000
根据Reddit帖子标题长度过滤Reddit帖子
title_length_minimum = 20
title_length_maximum = 100
滤除超过最大自我文字长度的帖子
maximum_length_self_text = 5000
滤除没有足够评论的reddit帖子
minimum_num_comments = 200
仅尝试处理最大数量的Reddit帖子
submission_limit = 1000
指定要生成多少个缩略图图像
number_of_thumbnails = 3
指定最大视频长度
max_video_length = 600 # Seconds
指定视频中要生成的最大评论
comment_limit = 600
指定各种文件夹路径
assets_directory = "assets"
temp_directory = "temp"
audio_directory = str(Path("temp"))
fonts_directory = str(Path(assets_directory,"fonts"))
image_backgrounds_directory = str(Path(assets_directory,"image_backgrounds"))
images_directory = str(Path(assets_directory,"images"))
thumbnails_directory = str(Path(assets_directory,"images"))
background_directory = str(Path(assets_directory,"backgrounds"))
video_overlay_filepath = str(Path(assets_directory,"particles.mp4"))
videos_directory = "videos"
指定视频高度和宽度
video_height = 720
video_width = 1280
clip_size = (video_width, video_height)
跳过编译视频,然后退出
enable_compilation = True
跳过上传到YouTube
enable_upload = False
在视频中添加视频覆盖层,例如降雪效果
enable_overlay = True
在视频中添加新闻媒体读取器
enable_newscaster = True
如果NewCaster视频是绿色屏幕,请尝试删除绿屏
newscaster_remove_greenscreen = True
在RGB中指定绿屏的颜色
newscaster_greenscreen_color = [1, 255, 17] # Enter the Green Screen RGB Colour
绿屏阈值越高,它将尝试删除越多
newscaster_greenscreen_remove_threshold = 100
通往纽卡斯特文件的路径
newscaster_filepath = str(Path(assets_directory,"newscaster.mp4").resolve())
在新闻播音员的屏幕上位置
newscaster_position = ("left","bottom")
新闻报道的大小
newcaster_size = (video_width * 0.5, video_height * 0.5)
在每个文本后添加一个暂停到语音音频文件
pause = 1 # Pause after speech
文本样式设置
text_bg_color = "#1A1A1B"
text_bg_opacity = 1
text_color = "white"
text_font = "Verdana-Bold"
text_fontsize = 32
从Lexica下载图像或跳过尝试下载的图像
lexica_download_enabled = True