提问人:Filth 提问时间:11/17/2023 最后编辑:Daniel A. WhiteFilth 更新时间:11/17/2023 访问量:37
Vimeo api 访问.mp4私人视频
Vimeo api access .mp4 private videos
问:
我正在尝试检索 .mp4 文件以作为 HTML5 标签的源呈现在里面<video src={videoUrl} />
我可以使用传递的 ID 看到视频的所有属性,但看不到直接文件本身,因此它可以在视频标签的 src 中播放。
如何访问文件以通过我的播放器播放?由于性能原因,我不想使用 oEmbed 或 Iframe。
export const getVimeoData = async (id: string) => {
const vim_res = await fetch(`https://api.vimeo.com/videos/${id}`, {
method: 'GET',
headers: {
'Content-Type': 'application/json',
Authorization: `Bearer ${process.env.VIMEO_TOKEN}`,
"grant_type": "client_credentials",
},
})
.then((res) => res.json())
.then((data) => {
console.log('data :>> ', data);
})
.catch((err) => console.log(err));
return vim_res;
};
答:
1赞
John
11/17/2023
#1
export const getVimeoVideo = async (id: string) => {
const videoData = await fetch(`https://api.vimeo.com/videos/${id}/files`, {
method: 'GET',
headers: {
'Content-Type': 'application/json',
Authorization: `Bearer ${process.env.VIMEO_TOKEN}`,
},
})
.then((res) => res.json())
.then((data) => {
// Assuming the first file is the highest quality
const videoFile = data.find((file) => file.quality === 'hd');
if (videoFile) {
return videoFile.link;
}
return null; // Handle case where no suitable file is found
})
.catch((err) => {
console.log(err);
return null;
});
return videoData;
};
此代码使用 videos/{video_id}/files 端点来获取与 Vimeo 视频关联的视频文件。然后,它会搜索具有所需质量的文件(例如,“hd”)并返回其链接。
请记住,文件质量可能会有所不同,因此您可能需要根据要求调整选择所需质量的逻辑。
获得视频文件 (videoFile.link) 的直接 URL 后,您可以将其设置为 HTML 中标记的 src 属性:
const videoUrl = await getVimeoVideo('YOUR_VIDEO_ID');
if (videoUrl) {
const videoElement = document.getElementById('yourVideoElementId');
videoElement.src = videoUrl;
// Optionally, trigger playback:
videoElement.play();
} else {
// Handle case where video URL is not available
}
评论
0赞
Filth
11/20/2023
感谢您的回答,获取 url 不正确,似乎因为我得到了意想不到的 JSON 输入结束。你能告诉我你在哪里找到了文档中 url 之外的 /files 吗?
评论