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

使用YouTube Data API下载字幕格式异常问题求助

YouTube Data API字幕下载问题解决指南

问题概述

1. 字幕格式异常

通过API下载的SRT字幕格式错乱,示例如下:

1
00:00:00,719 --> 00:00:06,000
{包含所有台词的长文本}

2
00:00:03,240 --> 00:00:09,120

3
00:00:06,000 --> 00:00:11,219
[后续条目均为空行]

但通过YouTube Studio下载的同语言字幕格式完全正常。

2. 反馈渠道疑问

按Google指引在Stack Overflow带标签提问后,长期无回复,不确定该渠道是否正确。

所用代码

YouTubeService youtubeService = await GetYouTubeService();

// 获取视频可用字幕列表
var captionListRequest = youtubeService.Captions.List("snippet, id", book.BSYouTubeId);

var captionListResponse = await captionListRequest.ExecuteAsync();

// 获取第一条字幕轨道
var captionTrack = captionListResponse.Items.FirstOrDefault();
if (captionTrack == null)
{
    context.WriteLine("No caption track found.");
    return;
}

// 下载字幕轨道
var captionDownloadRequest = youtubeService.Captions.Download(captionTrack.Id);
captionDownloadRequest.Tfmt = "srt";
captionDownloadRequest.Tlang = book.GetShortLanguageCode();
var captionStream = await captionDownloadRequest.ExecuteAsStreamAsync();

// 将字幕读取为字符串
var captionString = new StreamReader(captionStream).ReadToEnd();

解决方案

1. 修复字幕格式问题

核心原因:你下载的是自动生成的草稿字幕(Draft Caption),这类字幕的时间轴与文本未完成对齐,导致文本堆积在首条、后续条目为空。YouTube Studio默认下载的是已发布的正式字幕。

修改代码,筛选已发布的字幕轨道:

// 替换原有的FirstOrDefault(),筛选已发布的字幕
var captionTrack = captionListResponse.Items
    .FirstOrDefault(item => item.Snippet.Status == "published");

额外排查点:

  • 确认Tlang参数与目标字幕的语言代码完全匹配(比如"en"而非"en-US",取决于字幕轨道的实际设置)。
  • 若需排除自动生成草稿,可添加额外过滤条件:
var captionTrack = captionListResponse.Items
    .FirstOrDefault(item => 
        item.Snippet.Status == "published" && 
        (!item.Snippet.IsDraft.HasValue || !item.Snippet.IsDraft.Value));

2. 关于Stack Overflow反馈渠道

Stack Overflow确实是Google官方推荐的开发者问题反馈渠道,但需注意优化提问细节以提升曝光:

  • 标签精准:使用youtube-data-api、youtube-api、captions、srt这类核心标签。
  • 补充关键信息:在问题中添加API返回的字幕轨道元数据(如snippet.status、snippet.isDraft的值),以及你尝试过的排查步骤。
  • 定期更新:若3-5天无回复,可编辑问题补充新的测试结果或排查进展,触发系统重新推送问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.23 03:23:28