ارور اسکریپت آپلود ویدیو به آپارات

سلام دوستان، وقت بخیر.
من یک اسکریپت نوشتم که یک ویدیو از من میگیره و به آپارات آپلود میکنه،
ویدیو کاملا اپلود میشه، اما بعد از آپلود آپارات میگه : “پسوند فایل شما مجاز نمی باشد” و ویدیو رو قرار نمیده.
پسوند فایل ویدیو mp4 هست، به نظرتون مشکل از چیه ؟

کد اسکریپت:

#!/bin/python3

import hashlib
import requests
import json

def hash_password(password):
    res = hashlib.sha1((hashlib.md5(password.encode()).hexdigest()).encode()).hexdigest()
    return res

def login(username , password):
    url = "https://www.aparat.com/etc/api/login/luser/{0}/lpass/{1}".format(username, hash_password(password))
    res = requests.get(url=url)
    if res.status_code != 200:
        return None
    return res.json()

def upload_video(username , password):
    dict_login = login(username , password)

    token = dict_login['login']['ltoken']

    headers = {'content-type': 'multipart/form-data'}

    frmurl = "https://www.aparat.com/etc/api/uploadform/luser/{0}/ltoken/{1}".format(username , token)
    res = requests.get(url=frmurl).json()
    uploadurl = res['uploadform']['formAction']
    frmid = res['uploadform']['frm-id']
    # files = {'video': open('ddos.mp4', 'utf')}
    files = {'video':open('Linux Terminal 101 - Netcat.mp4', 'rb')}
    data={
        'frm-id': int(frmid),
        'data[title]': 'netcat',
        'data[category]': 1,
        'data[tags]': 'netcat',
        'data[comment]': 'yes',
        'data[descr]': 'learning netcat'
        }
    res = requests.post(url=uploadurl , data=data , files=files , headers=headers)
    print(res.text)

username = ''
password = ''

upload_video(username , password)

اولین پیشنهاد من، عوض کردن اسم فایل هست، به چیزی که توش space نداشته باشه. احتمالش کمه که مشکل از این باشه ولی به هرحال بعضیوقتا پیش میاد که توی انکد کردن اسپیس یا کاراکترهای فارسی یا کاراکترهای غیر a-z و A-Z مشکل به وجود بیاد.
پیشنهاد دومم اینه که از User Agentهای دیفالت لایبرری request استفاده نکنید. شاید به این گیر میده! user-agent رو تغییر بدید به یه چیز عمومی‌تر مثل فایرفاکس.
پیشنهاد سوم اینه که یه برنامه بنویسید که ادای سیستم آپلود آپارات رو دربیاره (ماک کردن آپارات) و کد خودتون رو روی اون برنامه تست کنید ببینید چی میگه. این روشیه هروقت با یه نرم‌افزار سروکار داریم که از کدش خبر نداریم، باید پیاده سازی بشه.

غیراز این پیشنهادی ندارم چون تا حالا همچین کاری انجام ندادم.

2 Likes

سلام. وقت بخیر.
گفتم شاید کسای دیگه ای هم به مشکل من بر بخورند پس نتیجه ای که گرفتم رو اینجا به سوالم ریپلای کنم.

اسکریپت من کاملا درست بود و مشکلی نداشت. طبق پیگیری که کردم. اپارات سمت سرور اجازه اپلود ویدیو با API رو نمیده. درواقع ویدیو اپلود میشه ولی ارور باز گشت داده میشه. این رو پشتیبانی آپارات گفت.

من پرسیدم ایا باز هم امکان ارسال وجود خواهد داشت یا نه؟

جواب دادن چون داریم سرویس API ها رو اپدیت می‌کنیم، فعلا پشتیبانی هم برای API نداریم.

2 Likes