Vimeo api 访问.mp4私人视频

Vimeo api access .mp4 private videos

提问人:Filth 提问时间:11/17/2023 最后编辑:Daniel A. WhiteFilth 更新时间:11/17/2023 访问量:37

问:

我正在尝试检索 .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;
};
javascript vimeo-api

评论


答:

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 吗?