Skip to content

Latest commit

 

History

4 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

alldl

ربات تلگرامی برای دانلود محتوا از اینستاگرام، تیک‌تاک و پینترست. کاربر لینک پست رو برای ربات می‌فرسته و ربات ویدیو/عکس رو دانلود و مستقیم تو تلگرام براش ارسال می‌کنه.

قابلیت‌ها

  • دانلود پست، ریلز و استوری اینستاگرام
  • دانلود ویدیو و عکس تیک‌تاک
  • دانلود ویدیو و عکس پینترست (شامل fallback مخصوص برای پین‌های عکسی که yt-dlp نمی‌تونه بگیره)
  • استخراج duration/width/height و ساخت thumbnail واقعی از ویدیو با ffprobe/ffmpeg، تا تلگرام مدت‌زمان و پیش‌نمایش رو درست نشون بده
  • پشتیبانی از کوکی (لاگین) برای اینستاگرام، با تبدیل خودکار فایل کوکی JSON (خروجی اکستنشن‌هایی مثل Cookie-Editor) به فرمت Netscape مورد نیاز yt-dlp
  • پیام خطای مشخص وقتی کوکی وجود نداره یا منقضی/نامعتبر شده

پیش‌نیازها

  • Python 3.10+
  • ffmpeg (برای merge کردن ویدیو/صدا، اعمال faststart و ساخت thumbnail)
sudo apt-get install -y ffmpeg

نصب

git clone https://github.com/Moorgan21/alldl.git
cd alldl
pip install -r requirements.txt

تنظیم

۱. توکن ربات تلگرام

فایل .env.example رو کپی کن به .env و توکن ربات (از @BotFather) رو بذار توش:

cp .env.example .env
BOT_TOKEN=xxxxxxxxxx:yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy

۲. کوکی اینستاگرام (اختیاری ولی برای اکثر پست‌ها لازمه)

اینستاگرام درخواست‌های بدون لاگین رو معمولاً بلاک یا محدود می‌کنه، برای همین بهتره از یه اکانت (ترجیحاً اکانت فرعی، نه اکانت اصلی — به‌خاطر ریسک بلاک شدن) کوکی export کنی:

  1. با کروم/فایرفاکس اکستنشن Cookie-Editor رو نصب کن
  2. با اکانت اینستاگرام مورد نظر وارد instagram.com بشو
  3. از منوی اکستنشن: Export → Export as JSON
  4. فایل خروجی رو با نام instagram.json بذار تو پوشه‌ی cookies/ (اگه نبود بسازش: mkdir -p cookies)

با هر بار اجرای ربات، اگه فایل cookies/instagram.json از cookies/instagram.txt جدیدتر باشه، به‌صورت خودکار (با tools/json2netscape.py) به فرمت Netscape تبدیل می‌شه. نیازی به کار دستی نیست.

می‌تونی این تبدیل رو دستی هم اجرا کنی:

python3 tools/json2netscape.py cookies/instagram.json cookies/instagram.txt

اجرا

python3 bot.py

برای اجرای دائمی در پس‌زمینه:

nohup python3 bot.py > bot.log 2>&1 &

بعد از اجرا، کافیه از تلگرام برای ربات /start بزنی و یه لینک پست از اینستاگرام/تیک‌تاک/پینترست بفرستی.

ساختار پروژه

alldl/
├── bot.py                  # کد اصلی ربات
├── tools/
│   └── json2netscape.py    # تبدیل کوکی JSON به فرمت Netscape
├── requirements.txt
├── .env.example
├── cookies/                # فایل‌های کوکی (gitignore شده)
└── downloads/              # پوشه‌ی موقت دانلود (gitignore شده)

محدودیت‌ها

  • حجم فایل: ربات تلگرام حداکثر ۵۰ مگابایت می‌تونه فایل ارسال کنه؛ فایل‌های بزرگ‌تر دانلود نمی‌شن و پیام خطا داده می‌شه.
  • ریت‌لیمیت اینستاگرام: حتی با کوکی، درخواست زیاد و پشت‌سرهم ممکنه باعث چالش امنیتی یا لاگ‌اوت شدن اکانت بشه.
  • منقضی شدن کوکی: اگه اکانت لاگ‌اوت بشه، رمز عوض بشه یا چالش امنیتی بخوره، باید کوکی جدید export و جایگزین بشه. ربات در این حالت پیام مشخص می‌ده.
  • استفاده از این ابزار برای دانلود خودکار محتوا ممکنه با Terms of Service پلتفرم‌های مذکور در تناقض باشه؛ مسئولیت استفاده با کاربره.

عیب‌یابی

مشکل راه‌حل
ویدیوی پینترست فقط کاورش دانلود می‌شه مطمئن شو ffmpeg نصبه
خطای «اینستاگرام بدون لاگین این پست رو نمی‌ده» فایل کوکی cookies/instagram.json رو تنظیم کن
خطای «کوکی منقضی یا نامعتبر شده» دوباره لاگین کن و کوکی جدید export کن
ویدیو تو تلگرام مدت‌زمان صفر نشون می‌ده این مورد با استخراج metadata از ffprobe رفع شده؛ اگه دوباره دیدی مطمئن شو نسخه‌ی جدید کد رو داری

لایسنس

این پروژه تحت لایسنس MIT منتشر شده.

About

No description, website, or topics provided.

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages