首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Vimeo API上传字幕

使用Vimeo API上传字幕
EN

Stack Overflow用户
提问于 2019-05-21 09:17:16
回答 1查看 430关注 0票数 0

你能帮帮我吗?我正在尝试上传使用Vimeo API字幕到我的PHP视频。

这里是Vimeo-api文档:https://developer.vimeo.com/api/upload/texttracks

不幸的是,没有关于用PHP上传Vimeo字幕的线索,Vimeo也没有为新用户提供任何代码示例。

我是这样工作的:

代码语言:javascript
复制
include __DIR__ . '/Vimeo/autoload.php';

// The client id and client secret needed to use the vimeo API
$clientId = "xxxxxxxxxxxxxxxxxxxxxxxxxx";
$clientSecret = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx";

// when getting an auth token we need to provide the scope
// all possible scopes can be found here https://developer.vimeo.com/api/authentication#supported-scopes
$scope = "public";

// The id of the user
$userId = 99999999;

// initialize the vimeo library
$lib = new \Vimeo\Vimeo($clientId, $clientSecret);

// request an auth token (needed for all requests to the Vimeo API)
$token = $lib->clientCredentials($scope);

// set the token
$lib->setToken('xxxxxxxxxxxxxxxxxxxxxxx');

// request video data
$videos = $lib->request("/me/videos/9999999");

// pretty print output
echo '<pre>' . var_export($videos, true) . '</pre>';

例如,根据vimeo-api-doc,字幕的输出如下所示:

代码语言:javascript
复制
...
'texttracks' => 
    array (
      'uri' => '/videos/9999999/texttracks',
      'options' => 
      array (
        0 => 'GET',
        1 => 'POST',
      ),
      'total' => 0,
    ),
...
...

所以,现在,我不知道我的下一步,甚至再读一遍vimeo dev。页面查看我的下一步,但我迷路了。

你能帮我解决这个问题吗?

谢谢。

EN

回答 1

Stack Overflow用户

发布于 2020-10-02 10:44:42

首先,Vimeo在https://developer.vimeo.com/api/upload/texttracks上的文档已经过时,他们还没有更新它,它不能工作!我查看了Vimeo.php源代码,发现了一个名为uploadTexttrack的未记录方法,以下是内部文档和函数原型:

代码语言:javascript
复制
 /**
 * Uploads a text track.
 *
 * @link https://developer.vimeo.com/api/upload/texttracks
 * @param string $texttracks_uri The text tracks uri that we are adding our text track to
 * @param string $file_path The path to your text track file
 * @param string $track_type The type of your text track
 * @param string $language The language of your text track
 * @return string The URI of the uploaded text track.
 * @throws VimeoRequestException
 * @throws VimeoUploadException
 */
public function uploadTexttrack($texttracks_uri, $file_path, $track_type, $language)

这是我的测试代码,看起来工作得很好,请注意,VTT或SRT文件有一个到脚本的相对路径,CC名称是从$file_path中提取出来的,作为basename()。'453355865‘是视频id。谢谢你Vimeo救了我??!我有130个视频,需要下面的14种语言,供有特殊需要的孩子们在Covid 19期间在家上学。我工作的学校系统中,许多家长无法帮助这些孩子,因为他们不懂英语。

代码语言:javascript
复制
        <?php
    include '../vimeo/vendor/autoload.php';
    use Vimeo\Vimeo;
    use Vimeo\Exceptions;
    use Vimeo\Exceptions\VimeoUploadException;
    $client_id = 'your client id';
    $client_secret = 'your client secret';
    $access_token = 'your access token';
    $lib = new Vimeo($client_id, $client_secret, $access_token);
    $videos = $lib->uploadTexttrack("/videos/453355865/texttracks", "vtt/Circles 1107 My Acquaintances.English.vtt", "captions", "en-US");
    $videos = $lib->uploadTexttrack("/videos/453355865/texttracks", "vtt/Circles 1107 My Acquaintances.Amharic.vtt", "captions", "am");
    $videos = $lib->uploadTexttrack("/videos/453355865/texttracks", "vtt/Circles 1107 My Acquaintances.Arabic.vtt", "captions", "ar");
    $videos = $lib->uploadTexttrack("/videos/453355865/texttracks", "vtt/Circles 1107 My Acquaintances.Chinese Simplified.vtt", "captions", "zh-CN");
    $videos = $lib->uploadTexttrack("/videos/453355865/texttracks", "vtt/Circles 1107 My Acquaintances.French.vtt", "captions", "fr");
    $videos = $lib->uploadTexttrack("/videos/453355865/texttracks", "vtt/Circles 1107 My Acquaintances.German.vtt", "captions", "de");
    $videos = $lib->uploadTexttrack("/videos/453355865/texttracks", "vtt/Circles 1107 My Acquaintances.Hindi.vtt", "captions", "hi");
    $videos = $lib->uploadTexttrack("/videos/453355865/texttracks", "vtt/Circles 1107 My Acquaintances.Japanese.vtt", "captions", "ja");
    $videos = $lib->uploadTexttrack("/videos/453355865/texttracks", "vtt/Circles 1107 My Acquaintances.Korean.vtt", "captions", "ko");
    $videos = $lib->uploadTexttrack("/videos/453355865/texttracks", "vtt/Circles 1107 My Acquaintances.Mongolian.vtt", "captions", "mn");
    $videos = $lib->uploadTexttrack("/videos/453355865/texttracks", "vtt/Circles 1107 My Acquaintances.Portuguese.vtt", "captions", "pt");
    $videos = $lib->uploadTexttrack("/videos/453355865/texttracks", "vtt/Circles 1107 My Acquaintances.Punjabi.vtt", "captions", "pa");
    $videos = $lib->uploadTexttrack("/videos/453355865/texttracks", "vtt/Circles 1107 My Acquaintances.Russian.vtt", "captions", "ru");
    $videos = $lib->uploadTexttrack("/videos/453355865/texttracks", "vtt/Circles 1107 My Acquaintances.Spanish.vtt", "captions", "es");
    ?>
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56229906

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档