yt-dlp va Instagram: “login required”, bo'sh natija va o'rniga nima ishlatish
yt-dlp ajoyib vosita, Instagram esa u eng yomon ishlaydigan sayt — va bunda uning aybi yo'q: Instagram sahifalarini kirgan brauzerga o'xshamagan har qanday mijozga login devori ortidan beradi, server IP'si esa hech qachon unga o'xshamaydi. Bu qo'llanma xato nimani anglatishini, odatiy yechimlar nega eskirishini va o'sha havola yuklab olish API'si orqali qanday ko'rinishini tushuntiradi — o'lchangan, taxmin emas.
Yangilangan
Xato aslida nima deydi
Xabar uchta turli holatni bitta qatorga jamlaydi: post mavjud emas, IP'ingiz chegaraga urildi yoki Instagram sessiya so'rayapti. Datacenter manzilida bu deyarli har doim uchinchisi — so'rov postga yetib bormaydi, avval login devoriga uriladi. yt-dlp ularni tashqaridan ajrata olmaydi, shuning uchun maslahati “cookie'ni sinab ko'ring”.
Terminal$ yt-dlp https://www.instagram.com/reel/ABC123/ ERROR: [Instagram] ABC123: Requested content is not available, rate-limit reached or login required. Use --cookies, --cookies-from-browser, --username and --password, or --netrc
Nega cookie faqat bir muddat yordam beradi
Brauzer sessiyasini eksport qilish o'sha kuni ishlaydi va bir necha kunda to'xtaydi: Instagram sessiya tokenlarini aylantiradi, ularni kelgan IP va qurilmaga bog'laydi va serverdan yuzlab post olayotgan akkauntni belgilaydi. Yechim endi boshqariladigan akkaunt va proksi navbatiga aylanadi — bu skreping operatsiyasi, yuklab olish buyrug'i emas.
Server IP'sidan nimani o'lchadik
yt-dlp'ni o'z quvurimizdan olib tashlashdan oldin Hetzner manzilidan 13 ta ommaviy reel'ni undan o'tkazdik: 0 tasi o'tdi, alohida chaqiruvlar yiqilishdan oldin 45 soniyagacha cho'zildi. Instagram'ning o'z embed endpointi ham yaxshi emas — 11 dan 0. Havolalar sog' edi; uy ulanishi ularni yechdi. Gap vositada emas, manzilda.
O'sha havola API orqali
Bitta GET, sizning tomoningizda cookie yo'q, brauzer yo'q. Yechish Instagram sessiyasiga bog'liq bo'lmagan manbalar zanjirida bo'ladi, javob esa reel, post, karusel va story uchun bir xil shaklda. Median javob vaqti jonli o'lchanadi va bosh sahifada ko'rsatiladi.
Terminalcurl -s "https://api.saveapi.org/v1/instagram" \ -H "Authorization: Bearer sk_live_xxxx" \ -G --data-urlencode "url=https://www.instagram.com/reel/ABC123/"
Python'da to'g'ridan-to'g'ri almashtirish
Agar kodingiz URL uchun yt-dlp'ni chaqirib, faylni o'zi yuklab olgan bo'lsa, bu o'sha shartnoma: havolani bering, to'g'ridan-to'g'ri media URL'larni oling, baytlarni CDN'dan torting. Yo'qotadiganingiz — yt-dlp'ning format tanlovi; javobda har Instagram media uchun bitta variant keladi, ya'ni tanlaydigan narsa yo'q.
Pythonimport httpx
def resolve(link: str) -> list[str]:
"""yt-dlp o'rniga: havoladan to'g'ridan-to'g'ri media URL'lar."""
r = httpx.get(
"https://api.saveapi.org/v1/download",
params={"url": link},
headers={"Authorization": "Bearer sk_live_xxxx"},
timeout=30,
)
data = r.json()
if not data["success"]:
raise RuntimeError(data["error"]["code"])
return [m["url"] for m in data["medias"]]Boshlashdan oldingi savollar
- yt-dlp Instagram'ni umuman yuklab oladimi hali?
- Rezidensial ulanishdan yangi cookie bilan — ko'pincha ha. Serverdan, bizning o'lchovimizda — yo'q, bot yoki backend uchun esa aynan server holati muhim.
- API mening Instagram akkauntimni ishlatadimi?
- Yo'q. Login yo'q, cookie yo'q, sizning akkauntingiz umuman ishtirok etmaydi; so'rov — faqat havola va API kalitingiz.
- Yiqilgan havola qancha turadi?
- Instagram'ning o'zi rad etgan havola — yopiq yoki o'chirilgan — 0.1 kredit turadi va barqaror kod bilan qaytadi. Bizning tomonimizda yiqilgan narsa hech narsa turmaydi, va javob qaysi biri ekanini aytadi.
Bu yerda ishlatilgan platformalar
Boshqa qo'llanmalar
Qo'llanmani o'z kalitingiz bilan ishga tushiring
Kalit bir daqiqada. 1 000 bepul kredit, kartasiz, muddatsiz.