سلام دوستان،
من یه اسکریپت نوشتم که کارش اینه :
لینک مستقیم ویدئو رو میگره اونو دانلود میکنه و میندازه داخل هاست
حالا بعدش باید از توی هاست اپلود بشه برای اپارات - کانال اپارات
من قسمت اپلودش رو با کتابخونه cURL نوشتم
طبق api اپارات بعداز اینکه فرم اپلود شد یا پیام خطا میده یا پیام اپلود انجام شد
و اگه اپلود اوکی باشه مقدار uid ویدئو رو بر میگردونه:
aparat.com/api
اما من بعد از اپلود فرم چنین پیامی دریافت میکنم:
{"uploadpost":{"type":"success","value":""}}
(فرمت جیسون هست)
که نشون میده آپلود انجام شده اما خبری از uid ویدئو نیست
دانلود سورس:
http://s7.picofile.com/file/8376715192/aparat.zip.html
@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);
سلام
@siamakdals
یعنی پاسخی که از آپارت میگیرید اینه؟
تو مستنداتش اگر نوشته باشه که uid هم میده ، که شما باید دریافت کنید ،
اگر کلا Uid نمیده کار خاصی نمیتونید کنید! وب سرویسش اینطوریه.
ببینید اگر مستندات گفته میده ولی نمیده باید به پشتیبانی خود آپارات پیام بدید ببینین دردش چیه
من به شخصه ازش استفاده نکردم
درود
فایلی که دارید آپلود میکنید رو چک کردید؟
محدودیتی چیزی از طرف API آپارات اعمال نمیشه؟
اگر موارد بالا رو چک کردید باید با پشتیبانی آپارات تماس بگیرید
@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);
من با پایتون نوشتم کد آپلود رو اما همیشه پیام خطای "پسوند فایل شما مجاز نمی باشد." رو می گیریم. کد رو میذارم برای استفاده دوستان. کسی تجربه ای داره لطفا به اشتراک بذاره.
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)
آیا مایل به ارسال نوتیفیکیشن و اخبار از طرف راکت هستید ؟