尝试使用Graph API在dailymotion上传视频时出错

时间:2014-05-10 10:35:21

标签: php api curl video-processing dailymotion-api

我正在尝试使用图形API在dailymotion上传视频:

http://www.dailymotion.com/doc/api/graph-api.html

使用读取和写入权限成功进行了身份验证,但尝试使用以下api发布方法上传视频时:http://www.dailymotion.com/doc/api/graph-api.html#publishing获取错误

  

stdClass对象([error] => stdClass对象([code] => 400 [消息]   => `url'参数返回无效的内容类型:text / plain,必须是video / * [type] => invalid_parameter))

我使用以下cURL向API发送请求:

$fields = '';
   $data = array(
       "access_token" => $token,
       "url" => "https://www.somesite.com/demo/dailymotion/X.mp4"
    );
   $url = "https://api.dailymotion.com/me/videos";
   foreach($data as $key => $value) { 
      $fields .= $key . '=' . $value . '&'; 
   }
   rtrim($fields, '&');

   $post = curl_init();

   curl_setopt($post, CURLOPT_URL, $url);
   curl_setopt($post, CURLOPT_POST, count($data));
   curl_setopt($post, CURLOPT_POSTFIELDS, $fields);
   curl_setopt($post, CURLOPT_RETURNTRANSFER, 1);

   $result = curl_exec($post);

   curl_close($post);
   print_r(json_decode($result));

有人请帮我解决这个问题。

1 个答案:

答案 0 :(得分:1)

我认为您的视频网址存在问题,看起来它未被视为视频:

invalid content type: text/plain, must be video/* [type] 

您应该使用通过api发送的上传网址:执行HTTP GET到/ file / upload以获取上传网址,并使用multipart / form-data content-type将视频发布到此地址,文件中包含视频领域。使用此URL测试代码时,它可以正常工作。

我有两条评论:为什么不使用php sdk?这将使您的一切变得更加轻松!此外,为了发布您的视频,您应该为其指定标题和频道,并设置"已发布"在您的数据数组中为true:

$data = array(
   "access_token" => $token,
   "channel" => "news",
   "title" => "my title",
   "published"=> True,
   "url" => $videourl
);

以下对此进行了描述:http://www.dailymotion.com/doc/api/getting-started.html#publishing-videos 你可以在http://www.dailymotion.com/doc/api/use-cases.html

找到一个使用php sdk的用例