You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

能否通过YouTube v3 API获取其他用户直播的actualStartTime值?

问题根源与解决方案

核心问题:参数误用

你调用liveBroadcasts.list时传入的是视频ID,但该接口的id参数要求的是直播广播的专属ID(而非直播结束后生成的回放视频ID),这直接导致接口返回空数组。

正确获取流程

要获取其他频道直播的snippet.actualStartTime,需按以下步骤操作:

  1. 定位目标频道的直播广播ID
    先通过search.list接口找到目标频道正在直播的视频,再通过videos.list接口获取该视频关联的广播ID:

    // 第一步:搜索目标频道的直播视频
    const searchRes = await Axios.get(`https://youtube.googleapis.com/youtube/v3/search`, {
        params: {
            channelId: "目标频道ID",
            type: "video",
            eventType: "live",
            part: "id",
            key: "你的API密钥" // 公开直播用API密钥即可,无需OAuth
        }
    });
    const liveVideoId = searchRes.data.items[0]?.id.videoId;
    
    // 第二步:通过视频ID获取广播ID
    const videoRes = await Axios.get(`https://youtube.googleapis.com/youtube/v3/videos`, {
        params: {
            id: liveVideoId,
            part: "contentDetails",
            key: "你的API密钥"
        }
    });
    const broadcastId = videoRes.data.items[0]?.contentDetails.broadcastId;
    
  2. 调用liveBroadcasts.list获取actualStartTime
    使用拿到的广播ID发起请求,指定part包含snippet:

    const broadcastRes = await Axios.get(`https://youtube.googleapis.com/youtube/v3/liveBroadcasts`, {
        params: {
            id: broadcastId,
            part: "snippet,status",
            // 公开直播用API密钥即可,若需访问受限内容则用OAuth令牌
            key: "你的API密钥"
            // Authorization: `Bearer ${token}` // 如需OAuth授权则替换key参数
        }
    });
    const actualStartTime = broadcastRes.data.items[0]?.snippet.actualStartTime;
    

额外说明

  • 公开直播的actualStartTime属于公开数据,使用API密钥即可访问,无需OAuth令牌;仅当目标直播为未公开/私人权限时,才需要对应权限的OAuth令牌。
  • 若目标频道当前无正在进行的直播,search.list会返回空数组,需做好空值判断。

内容的提问来源于stack exchange,提问作者michjens

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.31 15:50:29