ارسال فایل‌های حجیم یک پوشه توسط SSH+telegram-cli+pytg به تلگرام

کاری که امروز میخوام بکنم اینه که از طریق  SSH وصل بشم به ماشین مجازیم، تمام ویدیو‌های جادی توی یوتیوب رو دانلود کنم و با تلگرام تحت خط فرمان و کتابخونه پایتونی pytg ویدیو‌ها رو ارسال کنم کانال تلگرامم.

خوب با دستور SSH وارد VPSم شدم و توی پوشه /tmp یه پوشه jadi ساختم بعد با دستور زیر همه ویدیو های کانال یوتیوب جادی رو دانلود کردم.

youtube-dl -i https://www.youtube.com/user/jadi19jadi19/videos

 

آرگومان   -i    میگه که اگه توی دانلود ویدیویی به مشکل بر خوردی برو سراغ ویدیو بعدی و کلا از برنامه خارج نشو.

اگه youtube-dl رو نصب ندارید می‌تونید به راحتی با دستور زیر آخرین نسخه شو نصب کنید.

python3 -m pip install --upgrade --user youtube-dl

آرگومان –user می‌گه که فایل‌ها و کتابخونه های مورد نیاز رو برای همین یوزر نصب کن فقط. که نیاز به دسترسی های مدیری نداره.

برای آشنایی با سایر قابلیت‌های youtube-dl می‌تویند گیت نرم‌افزار رو مطالعه کنید.

https://github.com/rg3/youtube-dl/blob/master/README.md#format-selection

خوب کل ویدیو‌های جادی دانلود شدن.

حالا اگه تلگرام کلای رو نصب ندارید از آدرس زیر نصب کنید:

https://github.com/vysheng/tg

بعد از نصب با یه پورت دلخواه و به صورت خروجی جیسون اجراش می‌کنیم.

 /tmp /home/saeb/App/tg/bin/telegram-cli --json -P 4667

برای ارسال به یک کانال تلگرام نیاز داریم که یونیک آی دی کانال رو بدونیم. توی تلگرام کلای دستور زیر رو اول می‌نویسیم

channel_list

بعد با دستور زیر اطلاعات کانال مورد نظرمون رو می‌گیریم.

channel_info اطراف_من
{"id": "$050000007d208f3f0115b300fb607ab4", "print_name": "اطراف_من", "flags": 65603, "peer_type": "channel", "title": "اطراف من", "peer_id": 1066344573, "participants_count": 8, "admins_count": 3, "kicked_count": 0}

خوب یونیک آی‌دی کانال ما میشه "$050000007d208f3f0115b300fb607ab4"

حالا تلگرام کلای رو باز می‌زاریم و میریم سراغ پایتون

اول از همه کتابخونه pytg رو نصب می‌کنیم.

python3 -m pip install pytg --upgrade --user

حالا پایتون رو اجرا میکنیم و کتابخونه های مورد نیازمون رو توش صدا می‌زنیم.

saeb@Fujitsu  ~  python3

import subprocess
from pytg.sender import Sender
from time import sleep
sender = Sender(host="localhost", port=4667)

 

خوب فایل‌های پوشه ای که توش ویدیوها رو ریختیم که به من پوشه

/tmp/jadi

هست رو به صورت یه لیست ذخیره می‌کنیم.

ls=subprocess.getoutput('find /tmp/jadi -name "*.*"').splitlines()

خوب حالا فایل‌هامون رو می‌فرستیم به کانال

for i in ls:
        try:
                sent=sender.send_video("$050000007d208f3f0115b300fb607ab4",i,i.split('/')[3])
                if sent:
                        subprocess.run('mv',i,'/tmp')
        except:
                sleep(400)

 

توی دستور sender.send_video ورودی اول همون یونیک آی‌دی جایی هست که می‌خوایم بهش فایل‌ها رو بفرستیم. ورودی دوم ادرس فایل هست و ورودی سوم کپشن زیر ویدیو هست.

چند تا نکته : یک دستورا رو کپی پیست نکنید  تو رفتگی شون رعایت نشده پایتون دندون میگیره. دو اون اسلیپ ۴۰۰ برای اینه که پیش‌فرض ارسال فایل پای‌تی‌جی یک دقیقه هست و اگه بیشتر از یک دقیقه طول بکشه هشدار میده ولی ویدیو رو تلگرام کلای می‌فرسته . به من بر حسب تجربه هر فایلی بیشتر از چارصد ثانیه طول نمی‌کشه.اگه کسی بلده چطور زمان تایم اوت پای‌تی‌جی رو میشه عوض کرد بگه بزارم همیجا.

پسندها(1)شاکی(0)

یک دیدگاه دربارهٔ «ارسال فایل‌های حجیم یک پوشه توسط SSH+telegram-cli+pytg به تلگرام»

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

این سایت از اکیسمت برای کاهش هرزنامه استفاده می کند. بیاموزید که چگونه اطلاعات دیدگاه های شما پردازش می‌شوند.