使用DailyMotion API上传、修改和查看视频文件
本文探讨了如何通过三个组件的API,你可以访问Dailymotion的大部分(如果不是全部)方面。
Dailymotion是一个法国的视频共享平台,由Vivendi拥有。在美国,它得到了Vice Media、Bloomberg和Hearst Digital Media等合作伙伴的支持。它有183种语言和43个本地化版本。它目前估计有3亿用户,这很可观,但远远低于其较大的竞争对手YouTube。
Dailymotion API是一套开发者工具,你可以用它来管理Dailymotion内容并与之互动。通过三部分组成的API,你可以访问Dailymotion的大部分(如果不是全部)方面。公共数据可以自由使用,而私人数据则根据您的认证状态和权限所授予的权限受到限制。
-
数据API。这个API使您能够访问、修改和发布数据。它使您能够处理各种Dailymotion对象,包括视频、播放列表和用户。
-
播放器API。该API使您能够控制一个可以在网站或应用程序中显示或嵌入的播放器。嵌入与大多数移动设备以及兼容HTML-5的智能设备兼容。
-
报告API。这个API使你能够建立可定制的报告,包括汇总的性能测量。它包括一个灵活的界面,支持多种数据格式。该API仅对经过验证的Dailymotion合作伙伴开放。
您能用Dailymotion的API做什么?
虽然您可以通过API执行许多操作,但以下是一些最常见和最有用的功能。
在网站上嵌入视频
您可以通过<iframe> 元素将Dailymotion视频与他们的本地播放器嵌入。要做到这一点,您可以使用以下方法之一。
-
通过数据API的视频对象的
embed_html字段 -
从Dailymotion的视频页面的导出标签中手动复制代码
-
通过使用
oEmbed协议
无论你选择哪种方法,嵌入的代码应该大致如下。
<iframe frameborder="0" width="480"
height="270"src="https://www.Dailymotion.com/embed/video/VIDEO_ID?PARAMS"allowfullscreen allow="autoplay"></iframe>
定制一个视频播放器
一旦播放器被包含在你的网站或应用程序中,你可以自定义设置以匹配你的整体主题和需求。这包括播放器的颜色、行为、控制和标志。设置这种定制的一种方式是使用params,即查询字符串参数。你可以在这里了解更多关于这些参数的信息。
要修改一个播放器,你可以通过DM.player() 方法定义你的params属性。这个方法包含在JavaScript SDK中。下面你可以看到一个自定义播放器的例子。
<script src="https://api.dmcdn.net/all.js"></script>
<div id="player"></div>
<script>var player = DM.player(document.getElementById("player"), {video: "VIDEO_ID", width: "100%", height: "100%", params: {autoplay: true, mute: true}});</script>
为视频添加字幕
Dailymotion的API包括一些方法,使您能够添加或修改与您的视频相关的字幕。这是用包含字幕或闭合字幕信息的字幕对象来完成的。
要创建一个新的字幕对象,您可以通过视频图表对象的POST 请求来完成。下面你可以看到一个上传字幕文件的请求实例。
curl -X POST -H "Authorization: Bearer ${ACCESS_TOKEN}" \
-d 'language=en' \
-d 'url=https://your_site.com/subtitle_file.srt' \
-d 'format=SRT' \
https://api.dailymotion.com/video/<VIDEO_ID>/subtitles
用密码保护视频
如果你有私人视频或想限制特定用户访问视频,你可以添加密码保护。你可以通过定义一个访问令牌和设置一个密码来做到这一点。一旦添加了密码,视频的可见性将变为 "密码保护"。
你可以看到下面这个代码的一个例子。
curl -X POST -H "Authorization: Bearer ${ACCESS_TOKEN}" \
-d 'password=MyPassword' \
https://api.dailymotion.com/video/myvideo
如何使用Dailymotion API上传和发布视频
Dailymotion API最基本也是最重要的功能是上传和发布视频的能力。下面你可以看到一个简短的演练,解释所需的步骤,包括示例代码。这是从Dailymotion的文档中总结出来的,你可以在这里看到。
1. 认证用户
在你开始上传之前,你需要认证用户,以确保API访问的安全性。确定你想把视频托管在哪个账户上。在这个账户中,你就需要认证你的用户并请求manage_videos 范围。
2. 获取一个上传URL
接下来,你可以发出一个GET请求,包括你的访问令牌,到api.dailymotion.com/file/upload… 和一个progress_url 。
curl -H "Authorization: Bearer ${ACCESS_TOKEN}" \
"https://api.dailymotion.com/file/upload"
在执行这一步骤时,你还可以选择让最终用户发布视频。要做到这一点,你需要配置一个callback_url 参数,在上传完成后调用你的服务。
3. 上传视频
有了你的上传URL,你现在可以通过一个POST 请求上传你选择的视频。你应该用multipart/form-data内容类型来做,以确保视频被成功上传。
curl -X POST \
-F 'file=@/path/to/your/video.mp4' \
'<UPLOAD_URL>'
请求发出后,你应该收到一个JSON对象或带有额外查询字符串参数的回调URL。无论哪种情况,都要注意到URL字段。
下面是如何使用PHP API上传文件。
$url = $api->uploadFile('/path/to/your/video.mp4');
$api->post(
'/videos',
array(
'url' => $url,
'title' => 'Dailymotion PHP SDK upload test',
'tags' => 'dailymotion,api,sdk,test',
'channel' => 'videogames',
'published' => true,
'is_created_for_kids' => false,
)
);
4. 创建视频
POST 使用注意到的URL字段,你现在需要再向https://api.dailymotion.com/me/videos 。这个调用创建了视频,并应在response.id字段中为你的新视频返回一个ID号码。
curl -X POST -H "Authorization: Bearer ${ACCESS_TOKEN}" \
"https://api.dailymotion.com/me/videos"
5. 发布视频
假设你已经准备好发布视频,你需要再执行一个POST 请求到https://api.dailymotion.com/video/<VIDEO_ID> 。在这个请求中,你应该包括任何你想在发布前修改的字段。你还必须包括频道、标题和标签字段,以及一个设置为 "true "的发布字段。
curl -X POST -H "Authorization: Bearer ${ACCESS_TOKEN}" \
-d 'published=true' \
-d 'title=<TITLE>' \
-d 'channel=<CHANNEL>' \
-d 'tags=<TAGS>' \
https://api.dailymotion.com/video/<VIDEO_ID>