yasinarabi
yasinarabi
خواندن ۳ دقیقه·۲ سال پیش

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

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


ساخت یک ربات تلگرام میتونه یک تمرین خوب واسه دست به کد شدن افرادی باشه که تازه شروع به برنامه نویسی کرده اند. در این آموزش قراره از زبان پایتون استفاده کنیم و انتظار میره که خواننده با زبان پایتون آشنا باشد. همچنین بهتره که آشنایی سطحی ای با سیستم عامل گنو/لینوکس داشته باشید.

مرحله اول - ساخت ربات در تلگرام

در تلگرام خود وارد ربات @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 از من حمایت کنید.

زبان پایتونربات تلگرامساخت ربات تلگرامپایتوندانلود از یوتیوب
فعلا خدمت سربازی رو میگذرونم
شاید از این پست‌ها خوشتان بیاید