你能帮帮我吗?我正在尝试上传使用Vimeo API字幕到我的PHP视频。
这里是Vimeo-api文档:https://developer.vimeo.com/api/upload/texttracks
不幸的是,没有关于用PHP上传Vimeo字幕的线索,Vimeo也没有为新用户提供任何代码示例。
我是这样工作的:
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,字幕的输出如下所示:
...
'texttracks' =>
array (
'uri' => '/videos/9999999/texttracks',
'options' =>
array (
0 => 'GET',
1 => 'POST',
),
'total' => 0,
),
...
...所以,现在,我不知道我的下一步,甚至再读一遍vimeo dev。页面查看我的下一步,但我迷路了。
你能帮我解决这个问题吗?
谢谢。
发布于 2020-10-02 10:44:42
首先,Vimeo在https://developer.vimeo.com/api/upload/texttracks上的文档已经过时,他们还没有更新它,它不能工作!我查看了Vimeo.php源代码,发现了一个名为uploadTexttrack的未记录方法,以下是内部文档和函数原型:
/**
* 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期间在家上学。我工作的学校系统中,许多家长无法帮助这些孩子,因为他们不懂英语。
<?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");
?>https://stackoverflow.com/questions/56229906
复制相似问题