ربات تلگرامی برای دانلود محتوا از اینستاگرام، تیکتاک و پینترست. کاربر لینک پست رو برای ربات میفرسته و ربات ویدیو/عکس رو دانلود و مستقیم تو تلگرام براش ارسال میکنه.
- دانلود پست، ریلز و استوری اینستاگرام
- دانلود ویدیو و عکس تیکتاک
- دانلود ویدیو و عکس پینترست (شامل 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 ffmpeggit clone https://github.com/Moorgan21/alldl.git
cd alldl
pip install -r requirements.txtفایل .env.example رو کپی کن به .env و توکن ربات (از @BotFather) رو بذار توش:
cp .env.example .envBOT_TOKEN=xxxxxxxxxx:yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy
اینستاگرام درخواستهای بدون لاگین رو معمولاً بلاک یا محدود میکنه، برای همین بهتره از یه اکانت (ترجیحاً اکانت فرعی، نه اکانت اصلی — بهخاطر ریسک بلاک شدن) کوکی export کنی:
- با کروم/فایرفاکس اکستنشن Cookie-Editor رو نصب کن
- با اکانت اینستاگرام مورد نظر وارد
instagram.comبشو - از منوی اکستنشن: Export → Export as JSON
- فایل خروجی رو با نام
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.txtpython3 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 منتشر شده.