我想使用公共 API 密钥获取私人 dailymotion 播放列表的私人视频 ID。我尝试以下方法:
<?php
//Perform authentication
$url = "https://api.dailymotion.com/oauth/token";
$curl = curl_init($url);
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_POST, true);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
$headers = array(
"Content-Type: application/x-www-form-urlencoded",
);
curl_setopt($curl, CURLOPT_HTTPHEADER, $headers);
$data = "grant_type=password&client_id=xxx&client_secret=xxx&username=xxx&password=xxx&scope=email,feed,manage_analytics,manage_app_connections,manage_applications,manage_claim_rules,manage_domains,manage_features,manage_history,manage_likes,manage_player,manage_players,manage_playlists,manage_records,manage_subscriptions,manage_subtitles,manage_user_settings,manage_videos,read_insights,userinfo";
curl_setopt($curl, CURLOPT_POSTFIELDS, $data);
$resp = curl_exec($curl);
curl_close($curl);
$data = json_decode($resp, true);
//Retrieve an access token
$access_token = $data['access_token'];
//Get the list of video IDs
$url = "https://api.dailymotion.com/playlist/xxx/videos?fields=private_id%2Cprivate=true";
$curl = curl_init($url);
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
$headers = array(
);
$auth = "Authorization: Bearer " . $access_token;
$headers[0] = $auth;
curl_setopt($curl, CURLOPT_HTTPHEADER, $headers);
$resp = curl_exec($curl);
curl_close($curl);
$data = json_decode($resp, true);
//$ids = array_column($data['list'], 'private_id');
//print_r($ids);
var_dump($data);
?>
尽管该私人播放列表中有私人视频,但我收到以下信息:
array(6) { ["page"]=> int(1) ["limit"]=> int(10) ["explicit"]=> bool(false) ["total"]=> int(0) ["has_more"]=> bool(false) ["list"]=> array(0) { } }
正确的要求是:
$url =
"https://api.dailymotion.com/collection/xxx/videos?fields=private_id&private=true";
如果您想获得超过 10 件商品,请设置限制,例如:
$url =
"https://api.dailymotion.com/collection/xxx/videos?fields=private_id&private=true&limit=100";
100 是您可以获得的最大值。 还可以了解以下信息: https://developers.dailymotion.com/guides/browse-large-catalogs/