如何在上传视频后使用Dailymotion api获取缩略图网址

时间:2015-05-25 04:10:49

标签: dailymotion-api

我在上传视频后尝试使用API​​检索“thumbnail_url”。 但是,我检索到的“thumbnail_url”始终是此URL“Hhttp://s2.dmcdn.net/KtV-L.jpg”或“Hhttp://s2.dmcdn.net/KtV-L/x240-gK0.jpg” (当我使用oEmbed API时)。

另一方面,当我将URL手动插入浏览器的地址栏(如下面的URL)时,我可以获得我想要的“thumbnail_url”。 Hhttps://api.dailymotion.com/video/VIDEOID字段= thumbnail_url

我的问题是; 是否存在时间滞后或Dailymotion API在上传视频后是否需要更多时间来生成缩略图? 或者,检索我编码错误的缩略图网址的方法是什么?

以下是获取缩略图图片网址的代码。 *作为先决条件,我已经获得了访问令牌,创建了一个视频并发布了。

///////////////   Publish a video   ///////////////

    $publishVideoAPI = "https://api.dailymotion.com/video/".$responseID;
    // Post data
    $dataPublish = array(
    "title" => $videotitle,
    "published" => true,
    "channel" => "shortfilms",
    "tags" => $tags,
    "access_token" => $accesstoken
    );
    $conn = curl_init();
    // Post method
    curl_setopt($conn, CURLOPT_SSL_VERIFYPEER, false);
    curl_setopt($conn, CURLOPT_SSL_VERIFYHOST, false);
    curl_setopt($conn, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($conn, CURLOPT_URL, $publishVideoAPI);
    curl_setopt($conn, CURLOPT_POST, true);
    curl_setopt($conn, CURLOPT_POSTFIELDS, $dataPublish);

    // execute
    $resPublish = curl_exec($conn);
echo "publish video<br />";
    var_dump($resPublish);
    // close
    curl_close($conn);


///////////////   Grab a thumbnail image of the video start   ///////////////

    // API
    $thumbnail = "https://api.dailymotion.com/video/".$responseID."?fields=thumbnail_url";

    // initialise session
    $conn = curl_init();

    // Get method
    curl_setopt($conn, CURLOPT_SSL_VERIFYPEER, false);
    curl_setopt($conn, CURLOPT_SSL_VERIFYHOST, false);
    curl_setopt($conn, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($conn, CURLOPT_HEADER, false);
    curl_setopt($conn, CURLOPT_URL, $thumbnail);

    // execute
    $res2 = curl_exec($conn);
echo "thumbnail url<br />";
    //var_dump($res2);
echo "<br /><br />";
    // close
    curl_close($conn);

$thumbnailData = json_decode( $res2 , true );
$thumbnailURL = $thumbnailData["thumbnail_url"];
echo $thumbnailURL;

2 个答案:

答案 0 :(得分:0)

我已准备好执行此代码 GET方法此网址:https://api.dailymotion.com/video/'+ videoID +'?fields = id,thumbnail_url,thumbnail_120_url

找不到回应:

{ “ID”: “x2qwonn”, “thumbnail_url”: “http://s2.dmcdn.net/Kra86.jpg”, “thumbnail_120_url”:“http://s2.dmcdn.net/Kra86/x120 -aNB.jpg“}

response = {“id”:“x2qwonn”,“thumbnail_url”:“http://s2.dmcdn.net/Kra86.jpg”,“thumbnail_120_url”:“http://s2.dmcdn.net/Kra86 /x120-aNB.jpg“}

thumbnail = response ['thumbnail_120_url']。replace(“\”,“”)

获得结果

http://s2.dmcdn.net/Kra86/x120-aNB.jpg

答案 1 :(得分:0)

感谢您的回复。 我想出来了,现在正确上传了缩略图。 在您测试时,此代码是正确的。 我上传的图像总是与Dailymotion提供的图像相同的原因是视频状态是“处理”#34;。 所以我把循环以10秒的间隔检查状态,只有当状态转到&#34;已发布&#34;时,尝试抓取缩略图。