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

如何在Power BI中获取YouTube频道分析数据并搭建仪表盘

在Power BI中获取YouTube频道分析数据的完整方案

1. 准备Google API凭证

  • 登录Google Cloud Console,创建新项目
  • 搜索并启用 YouTube Data API v3 和 YouTube Analytics API(两个都需要:前者获取视频基础信息,后者获取观看时长等核心分析数据)
  • 创建凭证:
    • 对于公开数据(如视频播放量、点赞数),可创建「API密钥」
    • 对于私有分析数据(如观看时长、用户画像),创建「OAuth 2.0客户端ID」,应用类型选「桌面应用」,下载JSON凭证备用

2. 获取视频基础数据(播放量、点赞数)

打开Power BI Desktop,通过「获取数据」>「空白查询」进入Power Query编辑器,创建自定义函数拉取视频列表及基础统计:

let
    GetVideoStats = (channelHandle as text, apiKey as text) as table =>
    let
        // 通过频道Handle获取频道ID(已知频道ID可跳过此段)
        channelUrl = "https://www.googleapis.com/youtube/v3/channels?part=id&forHandle=" & channelHandle & "&key=" & apiKey,
        channelResp = Web.Contents(channelUrl),
        channelJson = Json.Document(channelResp),
        channelID = channelJson[items]{0}[id],

        // 获取频道下的视频ID列表(单次最多50条)
        videoListUrl = "https://www.googleapis.com/youtube/v3/search?channelId=" & channelID & "&part=id&maxResults=50&type=video&key=" & apiKey,
        videoListResp = Web.Contents(videoListUrl),
        videoListJson = Json.Document(videoListResp),
        videoIDs = List.Transform(videoListJson[items], each _[id][videoId]),
        videoIDStr = Text.Combine(videoIDs, ","),

        // 拉取视频基础统计和标题信息
        statsUrl = "https://www.googleapis.com/youtube/v3/videos?part=statistics,snippet&id=" & videoIDStr & "&key=" & apiKey,
        statsResp = Web.Contents(statsUrl),
        statsJson = Json.Document(statsResp),
        rawTable = Table.FromRecords(statsJson[items]),
        // 展开统计字段
        expandedStats = Table.ExpandRecordColumn(rawTable, "statistics", {"viewCount", "likeCount", "commentCount"}, {"播放量", "点赞数", "评论数"}),
        // 展开视频基本信息
        expandedSnippet = Table.ExpandRecordColumn(expandedStats, "snippet", {"title", "publishedAt", "videoId"}, {"视频标题", "发布时间", "视频ID"}),
        // 转换数据类型
        convertedTypes = Table.TransformColumnTypes(expandedSnippet, {
            {"播放量", Int64.Type},
            {"点赞数", Int64.Type},
            {"评论数", Int64.Type},
            {"发布时间", DateTime.Type}
        })
    in
        convertedTypes
in
    GetVideoStats

调用函数时,传入你的频道Handle(如@yourchannel)和API密钥即可获取数据。

3. 获取观看时长等核心分析数据

YouTube Analytics API需要OAuth授权(仅允许获取你有权限的频道数据),在Power Query中创建如下函数:

let
    GetWatchTimeData = (channelID as text, startDate as text, endDate as text) as table =>
    let
        url = "https://youtubeanalytics.googleapis.com/v2/reports?ids=channel%3D" & channelID & "&startDate=" & startDate & "&endDate=" & endDate & "&metrics=watchTimeMinutes,views&dimensions=video",
        // 首次调用会弹出OAuth授权窗口,登录你的Google账号即可
        response = Web.Contents(url),
        json = Json.Document(response),
        // 提取表头和数据行
        headers = List.Transform(json[columnHeaders], each _[name]),
        dataRows = Table.FromRows(json[rows], headers),
        // 重命名列并转换类型
        cleanedTable = Table.RenameColumns(dataRows, {
            ("watchTimeMinutes", "观看时长(分钟)"),
            ("views", "播放量"),
            ("video", "视频ID")
        }),
        convertedTypes = Table.TransformColumnTypes(cleanedTable, {
            {"观看时长(分钟)", Number.Type},
            {"播放量", Int64.Type}
        })
    in
        cleanedTable
in
    GetWatchTimeData

调用时传入频道ID、起始日期(格式YYYY-MM-DD)和结束日期即可。

4. 合并数据并处理

  • 将「视频基础数据表」和「观看时长数据表」通过「视频ID」列做合并查询,得到包含所有字段的完整数据集
  • 处理分页:如果频道视频超过50条,需在视频列表拉取逻辑中添加循环,利用nextPageToken获取全部视频

5. 搭建分析仪表盘

基于整理好的数据集,可快速搭建以下可视化组件:

  • 卡片图:展示总播放量、总观看时长、总点赞数等核心指标
  • 折线图:展示播放量/观看时长的每日/每周趋势
  • 柱状图:Top10视频的播放量、点赞数对比
  • 矩阵表:所有视频的详细数据(标题、发布时间、播放量、观看时长等)
  • 饼图:各视频播放量占比

注意事项

  • API配额限制:YouTube Data API v3每日配额为10000单位,Analytics API为1000单位,避免一次性拉取过多历史数据
  • 数据更新:可设置Power BI的自动刷新(需在云端配置OAuth凭证)
  • 权限验证:确保登录的Google账号拥有目标YouTube频道的管理权限

内容的提问来源于stack exchange,提问作者Syed Rehan Ali

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.27 11:02:54