كشط المنشورات من reddit وإنشاء مقاطع فيديو وملفات مصغرة تلقائيًا
اطلع على قناة YouTube الخاصة بي على سبيل المثال مقاطع الفيديو التي صنعها هذا الريبو:
ما هي الجريمة التي ترتكبها الناس؟ 
ما هو العرض ليس له شخصيات محببة؟ 
قنوات يوتيوب التي تم إنشاؤها باستخدام هذا الريبو:
إذا تم إنشاء قناة YouTube الخاصة بك باستخدام هذا المستودع وكنت ترغب في إدراجها أعلاه ، فيرجى التعليق على هذه المشكلة رقم 91 مع عنوان URL لقناة YouTube واسم القناة وذكر أنك تريد أن يتم سرده في ملف README الرئيسي.
شاهد الفيديو التعليمي لـ Python Reddit Youtube Bot: 
قم بتثبيت هذه المكونات المسبقة أولاً:
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 ++ أدوات بناء-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 لاحتواء الرموز الرموز التي أنشأتها في الخطوة السابقة.
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 :
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
إذا كنت ترغب في تمكين مذيع الأخبار ، وتحرير الإعدادات.
enable_newscaster = True

إذا كان مقطع فيديو NewCaster يحتوي على شاشة خضراء ، فيمكنك إزالته بالإعدادات التالية ، فاستخدم قطارة العين للحصول على لون 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 لاستبعاد:
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 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
أضف قارئًا لخبر الأخبار إلى الفيديو
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_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