Grattez les publications de Reddit et générez automatiquement des vidéos YouTube et des miniatures
Découvrez ma chaîne YouTube par exemple des vidéos réalisées par ce dépôt:
Quel crime êtes-vous d'accord avec les gens qui commettent? 
Quel spectacle n'a pas de personnages sympathiques? 
Canaux YouTube générés à l'aide de ce repo:
Si votre chaîne YouTube est générée à l'aide de ce référentiel et que vous souhaitez que ce soit répertorié ci-dessus, veuillez commenter ce numéro # 91 avec votre URL de chaîne YouTube et le nom de la chaîne et mentionner que vous le souhaitez répertorié dans le fichier ReadMe principal.
Regardez la vidéo Tutorial Python Reddit YouTube Bot: 
Installez d'abord ces composants préalables:
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
Générer des jetons Reddit Praw - https://www.reddit.com/prefs/apps/
Créez une copie du fichier auth-example.py et nommez-le auth.py:
copy config/auth-example.py config/auth.py
Mettez à jour le fichier auth.py pour contenir les jetons Auth Reddit que vous avez générés à l'étape précédente.
pip install -r requirements.txt
Installer et configurer le dramaturge en fonctionnant:
playwright install
Exécutez le script Python:
python app.py
Une fois la vidéo terminée, la vidéo sera générée dans le dossier videos et sera nommée final.mp4
Si vous souhaitez ajouter un arrière-plan vidéo, installez YT-DLP:
YT-DLP
Créez ensuite un dossier backgrounds et exécutez la commande suivante:
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
Vous pouvez afficher les paramètres disponibles en passant --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.
ou si vous souhaitez générer une vidéo pour un message Reddit spécifique, vous pouvez le spécifier via le --url Param:
python app.py --url https://www.reddit.com/r/AskReddit/comments/hvsxty/which_legendary_reddit_post_comment_can_you_still/
Ou vous pouvez faire plusieurs URL en séparant avec une virgule, c'est-à-dire:
python app.py --url https://www.reddit.com/r/post1,https://www.reddit.com/r/post2,https://www.reddit.com/r/post3
Si vous souhaitez générer uniquement des miniatures, vous pouvez spécifier --thumbnail-only , cela sautera le processus de compilation vidéo:
python app.py --thumbnail-only
Si vous souhaitez activer un journal de presse, modifiez les paramètres et définis:
enable_newscaster = True

Si la vidéo Newcaster a un écran vert, vous pouvez le supprimer avec les paramètres suivants, utilisez un compte-gouttes pour obtenir la couleur RVB de l'écran vert et définissez-le pour le supprimer:
newscaster_remove_greenscreen = True
newscaster_greenscreen_color = [1, 255, 17] # Enter the Green Screen RGB Colour
newscaster_greenscreen_remove_threshold = 100
Theres pas mal d'options que vous pouvez personnaliser dans le fichier settings.py :
Spécifiez quels subreddits vous souhaitez gratter:
subreddits = [
"AmItheAsshole",
"antiwork",
"AskMen",
"ChoosingBeggars",
"hatemyjob",
"NoStupidQuestions",
"pettyrevenge",
"Showerthoughts",
"TooAfraidToAsk",
"TwoXChromosomes",
"unpopularopinion",
"confessions",
"confession"
]
Sous-sombres à exclure:
subreddits_excluded = [
"r/CFB",
]
Filtrez les publications Reddit via des mots clés spécifiés
banned_keywords =["my", "nasty", "keywords"]
Changez le texte en moteur vocal que vous souhaitez utiliser, notez AWS Polly requiert et AWS compte et tokens Auth et peut encourir les coûts:
Soutient les moteurs vocaux:
# choices "polly","balcon","gtts"
voice_engine = "polly"
Nombre total de vidéos Reddit à générer
total_posts_to_process = 5
Les paramètres suivants consistent à filtrer automatiquement les publications
Ignorez les messages Reddit que moins que ce montant de mises à jour
minimum_submission_score = 5000
Filtrage des publications Reddit basées sur la longueur du titre de la publication Reddit
title_length_minimum = 20
title_length_maximum = 100
Filtrez les messages qui dépassent la longueur maximale du texte autonome
maximum_length_self_text = 5000
Filtrez les publications Reddit qui n'ont pas assez de commentaires
minimum_num_comments = 200
Essayez uniquement de traiter une quantité maximale de postes Reddit
submission_limit = 1000
Spécifiez le nombre d'images miniatures que vous souhaitez générer
number_of_thumbnails = 3
Spécifiez la longueur de vidéo maximale
max_video_length = 600 # Seconds
Spécifiez une quantité maximale de commentaires à générer dans la vidéo
comment_limit = 600
Spécification de divers chemins de dossier
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"
Spécifiez la hauteur et la largeur de la vidéo
video_height = 720
video_width = 1280
clip_size = (video_width, video_height)
Sauter la compilation de la vidéo et sortir juste à la place
enable_compilation = True
Sauter le téléchargement sur youtube
enable_upload = False
Ajoutez une superposition vidéo à la vidéo, par exemple l'effet de chute de la neige
enable_overlay = True
Ajouter un lecteur de Newscaster à la vidéo
enable_newscaster = True
Si la vidéo de Newcaster est un écran vert, essayez de supprimer l'écran vert
newscaster_remove_greenscreen = True
Spécifiez la couleur de l'écran vert en RVB
newscaster_greenscreen_color = [1, 255, 17] # Enter the Green Screen RGB Colour
Plus le numéro de seuil de écran vert est élevé, plus il tentera de supprimer
newscaster_greenscreen_remove_threshold = 100
Chemin vers le fichier newcaster
newscaster_filepath = str(Path(assets_directory,"newscaster.mp4").resolve())
Position sur l'écran du journal de presse
newscaster_position = ("left","bottom")
La taille du journal
newcaster_size = (video_width * 0.5, video_height * 0.5)
Ajoutez une pause après chaque texte au fichier audio de la parole
pause = 1 # Pause after speech
Paramètres de style texte
text_bg_color = "#1A1A1B"
text_bg_opacity = 1
text_color = "white"
text_font = "Verdana-Bold"
text_fontsize = 32
Télécharger des images de Lexica ou sauter en essayant de télécharger
lexica_download_enabled = True