Kratzen Sie Beiträge von Reddit ab und generieren automatisch YouTube -Videos und Miniaturansichten
Checkout in meinem YouTube -Kanal zum Beispiel Videos, die von diesem Repo erstellt wurden:
Welches Verbrechen sind Sie mit Menschen einverstanden? 
Welche Show hat keine sympathischen Charaktere? 
YouTube -Kanäle, die mit diesem Repo erzeugt wurden:
Wenn Ihr YouTube -Kanal mit diesem Repository generiert wird und Sie ihn oben aufgeführt haben möchten, kommentieren Sie diese Ausgabe Nr. 91 mit Ihrer YouTube -Kanal -URL und Ihrem Kanalnamen und erwähnen Sie, dass Sie möchten, dass er in der Haupt -ReadMe -Datei aufgeführt ist.
Sehen Sie sich das Python Reddit YouTube Bot Tutorial Video an: 
Installieren Sie zuerst diese Voraussetzungskomponenten:
Git - https://git-scm.com/download/win
Python 3.10-https://www.python.org/ftp/python/3.10.0/python-3.10.0-amd64.exe
Microsoft C ++ Build Tools-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
Generieren Sie Reddit Praw Token - https://www.reddit.com/prefs/apps/
Erstellen Sie eine Kopie der Datei auth-example.py und nennen Sie es auth.py:
copy config/auth-example.py config/auth.py
Aktualisieren Sie die auth.py -Datei, um die Reddit Auth -Token zu enthalten, die Sie im vorherigen Schritt generiert haben.
pip install -r requirements.txt
Installieren und konfigurieren Sie Dramatiker durch Ausführen:
playwright install
Führen Sie das Python -Skript aus:
python app.py
Wenn das Video videos final.mp4
Wenn Sie einen Videohintergrund hinzufügen möchten, installieren Sie YT-DLP:
yt-dlp
Erstellen Sie dann einen backgrounds und führen Sie den folgenden Befehl aus:
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
Sie können verfügbare Parameter anzeigen, indem Sie --help eingeben:
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.
Oder wenn Sie ein Video für einen bestimmten Reddit -Beitrag generieren möchten, können Sie es über den Param --url -Param angeben:
python app.py --url https://www.reddit.com/r/AskReddit/comments/hvsxty/which_legendary_reddit_post_comment_can_you_still/
Oder Sie können mehrere URLs durchführen, indem Sie mit einem Komma getrennt werden, dh:
python app.py --url https://www.reddit.com/r/post1,https://www.reddit.com/r/post2,https://www.reddit.com/r/post3
Wenn Sie nur Miniaturansichten generieren möchten, die Sie angeben können, können Sie nur einen --thumbnail-only Modus überspringen, damit der Video-Kompilierungsprozess überspringt:
python app.py --thumbnail-only
Wenn Sie einen Newscaster aktivieren möchten, bearbeiten Sie die Einstellungen.py und setzen Sie:
enable_newscaster = True

Wenn das Newcaster -Video über einen grünen Bildschirm verfügt, können Sie es mit den folgenden Einstellungen entfernen. Verwenden Sie einen Augentropper, um die RGB -Farbe des Greenscreen zu erhalten, und stellen Sie es ein, um es zu entfernen:
newscaster_remove_greenscreen = True
newscaster_greenscreen_color = [1, 255, 17] # Enter the Green Screen RGB Colour
newscaster_greenscreen_remove_threshold = 100
Es gibt einige Optionen, die Sie in der Datei settings.py anpassen können:
Geben Sie an, welche Subreddits Sie kratzen möchten:
subreddits = [
"AmItheAsshole",
"antiwork",
"AskMen",
"ChoosingBeggars",
"hatemyjob",
"NoStupidQuestions",
"pettyrevenge",
"Showerthoughts",
"TooAfraidToAsk",
"TwoXChromosomes",
"unpopularopinion",
"confessions",
"confession"
]
Subreddits ausschließen:
subreddits_excluded = [
"r/CFB",
]
Filtern Sie Reddit -Beiträge über bestimmte Schlüsselwörter heraus
banned_keywords =["my", "nasty", "keywords"]
Ändern Sie den Text in die Sprachmaschine, die Sie verwenden möchten, beachten Sie AWS Polly und AWS -Konto und Auth -Token und können Kosten entstehen:
Unterstützt Sprachmotoren:
# choices "polly","balcon","gtts"
voice_engine = "polly"
Gesamtzahl der Reddit -Videos, um zu generieren
total_posts_to_process = 5
In den nächsten Einstellungen werden die Beiträge automatisch herausgefiltert
Überspringen Sie Reddit -Beiträge, die weniger als diese Anzahl von Updates
minimum_submission_score = 5000
Filterung von Reddit -Posts basierend auf der Reddit -Post -Titellänge
title_length_minimum = 20
title_length_maximum = 100
Filtern Sie Beiträge heraus, die die maximale Selbsttextlänge überschreiten
maximum_length_self_text = 5000
Filtern Sie Reddit -Beiträge heraus, die nicht genügend Kommentare haben
minimum_num_comments = 200
Versuchen Sie nur, eine maximale Menge an Reddit -Posts zu verarbeiten
submission_limit = 1000
Geben Sie an, wie viele Miniaturbilder Sie generieren möchten
number_of_thumbnails = 3
Geben Sie die maximale Videolänge an
max_video_length = 600 # Seconds
Geben Sie die maximale Anzahl von Kommentaren an, die im Video generiert werden sollen
comment_limit = 600
Angabe verschiedener Ordnerwege
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"
Geben Sie die Videohöhe und die Breite an
video_height = 720
video_width = 1280
clip_size = (video_width, video_height)
Überspringen Sie das Video und beenden Sie stattdessen einfach beenden
enable_compilation = True
Überspringen Sie das Hochladen auf YouTube
enable_upload = False
Fügen Sie dem Video ein Video -Overlay hinzu, zum Beispiel Schneeffekteffekte
enable_overlay = True
Fügen Sie dem Video einen Newscaster -Leser hinzu
enable_newscaster = True
Wenn ein Newcaster -Video ein grüner Bildschirm ist, um den grünen Bildschirm zu entfernen
newscaster_remove_greenscreen = True
Geben Sie die Farbe des grünen Bildschirms in RGB an
newscaster_greenscreen_color = [1, 255, 17] # Enter the Green Screen RGB Colour
Je höher die Greenscreen -Schwellenzahl, desto mehr wird versucht es zu entfernen
newscaster_greenscreen_remove_threshold = 100
Pfad zur Newcaster -Datei
newscaster_filepath = str(Path(assets_directory,"newscaster.mp4").resolve())
Position auf dem Bildschirm des Nachrichtensenders
newscaster_position = ("left","bottom")
Die Größe des Nachrichtensenders
newcaster_size = (video_width * 0.5, video_height * 0.5)
Fügen Sie eine Pause nach jedem Text zur Sprach -Audio -Datei hinzu
pause = 1 # Pause after speech
Textstileinstellungen
text_bg_color = "#1A1A1B"
text_bg_opacity = 1
text_color = "white"
text_font = "Verdana-Bold"
text_fontsize = 32
Laden Sie Bilder von Lexica herunter oder überspringen Sie den Versuch zum Herunterladen
lexica_download_enabled = True