Сокращение от Reddit и автоматически генерируйте видео на YouTube и миниатюры
Оформить мой канал на YouTube, например, видео, сделанные этим репо:
Какое преступление вы в порядке с людьми, совершающими? 
В каком шоу нет симпатичных персонажей? 
Каналы YouTube, сгенерированные с использованием этого репо:
Если ваш канал YouTube генерируется с использованием этого репозитория, и вы хотели бы, чтобы он указан выше, пожалуйста, прокомментируйте этот вопрос № 91 с помощью URL -адреса канала YouTube и имени канала и упомяните, что вы хотите, чтобы он указан в основном файле Readme.
Посмотрите видео -учебное пособие по обучению бота на YouTube Python: 
Сначала установите эти необходимые компоненты:
Git - https://git-cm.com/download/win
Python 3.10-https://www.python.org/ftp/python/3.10.0/python-3.10.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 - 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, работая:
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 :
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
Если вы хотите включить журнал Newscaster, отредактируйте настройки и установите:
enable_newscaster = True

Если видео NewCaster имеет зеленый экран, вы можете удалить его со следующими настройками, используйте капельку для глаз, чтобы получить цвет RGB Greenscreen, и установите, чтобы он был удален:
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 и токены AUTH и может понести затраты:
Поддерживает речевые двигатели:
# choices "polly","balcon","gtts"
voice_engine = "polly"
Общее количество видео Reddit для генерации
total_posts_to_process = 5
Следующие настройки должны автоматически отфильтровать сообщения
Пропустить посты Reddit, которые меньше, чем эта сумма обновлений
minimum_submission_score = 5000
Фильтрация постов Reddit на основе длины заголовка Reddit Post
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
Добавьте в видео читателя Newscaster в видео
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
Путь к файлу Newcaster
newscaster_filepath = str(Path(assets_directory,"newscaster.mp4").resolve())
Позиция на экране журнала Newscaster
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 или Skip, пытаясь скачать
lexica_download_enabled = True