آموزش ساخت ربات تلگرام دانلود از یوتیوب با پایتون

آموزش ساخت ربات تلگرام دانلود از یوتیوب با پایتونساخت یک ربات تلگرام میتونه یک تمرین خوب واسه دست به کد شدن افرادی باشه که تازه شروع به برنامه نویسی کرده اند. در این آموزش قراره از زبان پایتون استفاده کنیم و انتظار میره که خواننده با زبان پایتون آشنا باشد. همچنین بهتره که آشنایی سطحی ای با سیستم عامل گنو/لینوکس داشته باشید.مرحله اول - ساخت ربات در تلگرامدر تلگرام خود وارد ربات @BotFather شوید ابتدا دستور /newbot را وارد کنید و مراحل خواسته شده را طی کنید تا تلگرام، توکن ربات رو در اختیارتون قرار بده. در تصویر زیر توکن ربات با کادر زرد رنگ مشخص شده است.مراحل ساخت ربات جدید در تلگراممرحله دوم - آماده سازی محیط برنامه نویسیابتدا محیط مجازی (Virtual Environment) خود را ایجاد کنید.$ virtualenv .venv $ source .venv/bin/activateحالا باید کتابخونه های مورد نیاز رو نصب کنیم.$ pip install python-telegram-bot $ pip install pytube3مرحله سوم - کدکد این آموزش رو میتونید از اینجا دانلود کنید و فایل main.py را باز کنید. در این مرحله خط به خط کد را توضیح میدهیم. برای درک بهتر مفاهیم میتونید در تصویر زیر کد رو به صورت کامل مشاهده کنید.کد برنامهابتدا کتابخانه های مورد نیاز را import میکنیم.( خطوط 1 تا 6)# Import libraries from telegram import Update from telegram.ext import Updater, CallbackContext, CommandHandler, MessageHandler, Filters from pytube import YouTubeimport os, reدر خطوط 7 تا 9 متغیر DOWNLOAD_LOCATION را تعریف میکنیم. این متغیر محل ذخیره سازی ویدیوهایی که دانلود میکنیم را مشخص میکند.# Base variables DOWNLOAD_LOCATION = &quot./temp/&quotدر خطوط 10 تا 14 تابع start را تعریف میکنیم. این تابع قراره موقعی که کاربر دکمه start را میزنه فراخوانی بشه و یک پیام خوش آمدگویی به کاربر ارسال کنه.# Send welcome message to new users def start(update: Update, context: CallbackContext) -> None: update.message.reply_text('Welcome to my youtube downloader bot.')در خطوط 15 تا 36 تابع download را تعریف میکنیم. وقتی که کاربر یه متن را برای ما ارسال میکنه این تابع اجرا میشه. در خطوط 19 تا 21 چک میکنیم که کاربر برای ربات یک لینک یوتیوب فرستاده یا نه؟ اگر جواب مثبت باشه خطوط 23 تا 32 و در غیر اینصورت خط 34 اجرا میشه.خطوط 23 تا 32 شامل سه قسمت میشه. اول در خطوط 23 تا 26 ویدیو را از یوتیوب دانلود، سپس در خطوط 27 تا 30 ویدیو را به کاربر ارسال، و نهایتا در خطوط 31 و 32 ویدیو را از روی حافظه خودمون پاک میکنیم تا در دراز مدت فضای سرورمون پر نشه.خط 34 هم یک پیغام به کاربر ارسال میکنه که میگه لینک وارد شده توسط شما معتبر نیست.# Download video from youtube and send to user def download(update: Update, context: CallbackContext) -> None: user_id = update.message.from_user['id'] # Check if user message is a valid youtube video link link = update.message.text pattern = r&quothttp(?:s?):\/\/(?:www\.)?youtu(?:be\.com\/watch\?v=|\.be\/)([\w\-\_]*)(&(amp;)?‌​[\w\?‌​=]*)?&quot result = re.match(pattern, link) if result: # Download video from youtube youtube = YouTube(link) youtube_stream = youtube.streams.get_highest_resolution() youtube_stream.download(DOWNLOAD_LOCATION) # Send video to user file_name = youtube.streams.get_highest_resolution().default_filename file_dir = f&quot{DOWNLOAD_LOCATION}{file_name}&quot context.bot.send_video(chat_id=user_id, video=open(file_dir, 'rb'), supports_streaming=True) # Delete video from disk after sending to user os.remove(file_dir) else: update.message.reply_text('Your link is not valid.')خطوط 37 تا 46 خطوط نهایی است. توجه داشته باشید که توکن ربات ( که در مرحله اول به دست آوردیم) را در خط 38 جایگزین عبارت TOKEN کنید.مرحله چهارم - اجرای کدبرای اجرای کد کافیست فایل main.py را با پایتون اجرا کنید.$ python main.pyهمانطور که در تصویر زیر مشاهده میکنید. ربات با موفقیت اجرا میشود.تست برنامهامیدوارم این آموزش براتون مفید بوده باشه. میتونید با لایک کردن این نوشته یا ریپوزیتوری github از من حمایت کنید.