siamak dal
4 سال پیش توسط siamak dal مطرح شد
10 پاسخ

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

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


ثبت پرسش جدید
سبحان مقیسه
@sobhan.moghiseh 4 سال پیش مطرح شد
1

@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 4 سال پیش مطرح شد
0

سلام
@siamakdals

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

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


siamak dal
@siamakdals 4 سال پیش مطرح شد
0

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


siamak dal
@siamakdals 4 سال پیش مطرح شد
0

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


siamak dal
@siamakdals 4 سال پیش مطرح شد
0

@ali.bayat

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


حسام موسوی
تخصص : طراح و برنامه نویس
@hesammousavi 4 سال پیش مطرح شد
0

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


علی بیات
تخصص : توسعه دهنده ارشد وب
@ali.bayat 4 سال پیش مطرح شد
0

درود

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

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


siamak dal
@siamakdals 4 سال پیش مطرح شد
0

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


سبحان مقیسه
@sobhan.moghiseh 4 سال پیش مطرح شد
1

@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);

هادی
@manofseven 4 سال پیش آپدیت شد
1

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

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
تخصص : برنامه نویس اندروید و iOS
@joshaghani.dev 4 سال پیش مطرح شد
0

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


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

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