راکت
حل شده

ارسال ویدئو از هاست به آپارات در php

10 پاسخ

سلام دوستان،
من یه اسکریپت نوشتم که کارش اینه :
لینک مستقیم ویدئو رو میگره اونو دانلود میکنه و میندازه داخل هاست
حالا بعدش باید از توی هاست اپلود بشه برای اپارات - کانال اپارات
من قسمت اپلودش رو با کتابخونه cURL نوشتم
طبق api اپارات بعداز اینکه فرم اپلود شد یا پیام خطا میده یا پیام اپلود انجام شد
و اگه اپلود اوکی باشه مقدار uid ویدئو رو بر میگردونه:
aparat.com/api
اما من بعد از اپلود فرم چنین پیامی دریافت میکنم:
{"uploadpost":{"type":"success","value":""}}
(فرمت جیسون هست)
که نشون میده آپلود انجام شده اما خبری از uid ویدئو نیست
دانلود سورس:
http://s7.picofile.com/file/8376715192/aparat.zip.html

ثبت پرسش جدید

پاسخ‌ها

10
سبحان مقیسه
سبحان مقیسه
@sobhan.moghiseh
بهترین پاسخ

@siamakdals
سلام مشکل تکه کد شما این هست که آی دی دسته بندی رو مشخص نکردید . من کد شما رو تکمیل کردم :

    $category_id_of_video   = 4;
    $title_of_video         = "دو ثانیه نشد";

    //send to aparat
    $url = $formAction;

    $videoName='video/47.mp4';

    $file = null;

    if (function_exists("curl_file_create")){
        $file = curl_file_create($videoName);
    } else{
        $file = '@'.realpath($videoName);
    }

    $form = array(
        "video"             => $file,
        "frm-id"            => $frm_id,
        "data[category]"    => $category_id_of_video,
        "data[title]"       => $title_of_video
    );

    $ch = curl_init($url);

    curl_setopt($ch,CURLOPT_HEADER,["Content-Type" => "multipart/form-data"]);
    curl_setopt($ch,CURLOPT_POST,true);
    curl_setopt($ch,CURLOPT_RETURNTRANSFER,true);
    curl_setopt($ch,CURLOPT_POSTFIELDS,$form);
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);

    $response = curl_exec($ch);

    $info = curl_getinfo($ch);

    if (!curl_errno($ch)){
        if ($info["http_code"]==200){
            echo "File Uploaded";
        }
    }
    //
    //echo $response;
    curl_close($ch);
Alimotreb
Alimotreb
@Alimotreb

تخصص: کانفیگ سرور و برنامه نویس

سلام
@siamakdals

یعنی پاسخی که از آپارت میگیرید اینه؟

تو مستنداتش اگر نوشته باشه که uid هم میده ، که شما باید دریافت کنید ،
اگر کلا Uid نمیده کار خاصی نمیتونید کنید! وب سرویسش اینطوریه.

siamak dal
siamak dal
@siamakdals

@Alimotreb
بله توی مستندات نوشته که میده

شاید پاسخ شما همین‌جا باشد

siamak dal
siamak dal
@siamakdals

کسی نبود کمک کنه؟

siamak dal
siamak dal
@siamakdals

@ali.bayat

@hesammousavi
دوستان راه حلی هست آیا؟

حسام موسوی
حسام موسوی
@hesammousavi

تخصص: طراح و برنامه نویس

ببینید اگر مستندات گفته میده ولی نمیده باید به پشتیبانی خود آپارات پیام بدید ببینین دردش چیه
من به شخصه ازش استفاده نکردم

علی بیات
علی بیات
@ali.bayat

تخصص: توسعه دهنده ارشد وب

درود

فایلی که دارید آپلود میکنید رو چک کردید؟
محدودیتی چیزی از طرف API آپارات اعمال نمیشه؟

اگر موارد بالا رو چک کردید باید با پشتیبانی آپارات تماس بگیرید

siamak dal
siamak dal
@siamakdals

@ali.bayat
بله مشکلی نداره.
نخیر محدودیتم نداره
پشتیبانی هم جواب نمیدن

هادی
هادی
@manofseven

من با پایتون نوشتم کد آپلود رو اما همیشه پیام خطای "پسوند فایل شما مجاز نمی باشد." رو می گیریم. کد رو میذارم برای استفاده دوستان. کسی تجربه ای داره لطفا به اشتراک بذاره.

import hashlib
import requests
import json

def md5(s, raw_output=False):
    """Calculates the md5 hash of a given string"""
    res = hashlib.md5(s.encode())
    if raw_output:
        return res.digest()
    return res.hexdigest()

def login(u, p):
    p = hashlib.sha1(md5(p).encode('utf-8')).hexdigest()
    url = "https://www.aparat.com/etc/api/login/luser/{0}/lpass/{1}".format(u, p)
    res = requests.get(url=url)
    if res.status_code != 200:
        return None
    login_dict = json.loads(res.text)
    return login_dict

def upload_video(u, t, f, c=0):
    frmurl = "https://www.aparat.com/etc/api/uploadform/luser/{0}/ltoken/{1}".format(u, t)
    res = requests.get(url=frmurl)
    if res.status_code != 200:
        return None
    form_dict = json.loads(res.text)
    frmid = form_dict['uploadform']['frm-id']
    uploadurl = form_dict['uploadform']['formAction']
    video = {'video': (f, open(f, 'rb'), 'video/mp4')}
    headers = {'content-type': 'multipart/form-data'}
    res = requests.post(url=uploadurl, files=video, data={
        'frm-id': int(frmid),
        'data[title]': 'سخنان حضرت آقا در مورد بیت المال',
        'data[category]': c,
        'data[tags]': 'فرمایشات - بیت المال',
        'data[comment]': 'yes',
        'data[descr]': 'فرمایشات حضرت آقا در مورد بیت المال'
    }, headers=headers)
    print(res)

u = 'XXXXXXXXXX'
p = 'XXXXXXXXXX'
login_dict = login(u, p)
if login_dict is not None:
    if login_dict['login']['type'] == 'success':
        upload_video(u, login_dict['login']['ltoken'], '640x640.mp4', 9)
mohamadCurly
mohamadCurly
@joshaghani.dev

تخصص: برنامه نویس اندروید و iOS

منم همین مشکل رو تو اندریود دارم :(

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

ورود یا ثبت‌نام