YouTube 字幕下载格式不正确

问题描述 投票:0回答:1

我使用 YouTube 数据 API 下载字幕,它似乎有效,但是当我从 api 下载字幕时,内容格式不正确。

1
00:00:00,719 --> 00:00:06,000
{LONG TEXT CONTAINS ALL SCRIPT}

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

3
00:00:06,000 --> 00:00:11,219
[REST OF THE TIME WITH EMPTY LINES]

但是,当我使用 studio.youtube.com 下载时它看起来是正确的。

有解决办法吗?

PS:Google 说我必须将 stackoverflow 与标签一起使用,但到目前为止我无法得到任何答案或评论。现在是正确的方法吗?

编辑:

基于 API 文档 我正在使用下面的代码,它下载了字幕但没有正确格式的数据。

YouTubeService youtubeService = await GetYouTubeService();

// Get the list of available captions for the video
var captionListRequest = youtubeService.Captions.List("snippet, id", book.BSYouTubeId);

var captionListResponse = await captionListRequest.ExecuteAsync();

// Get the first caption track
var captionTrack = captionListResponse.Items.FirstOrDefault();
if (captionTrack == null)
{
    context.WriteLine("No caption track found.");
    return;
}

// Download the caption track
var captionDownloadRequest = youtubeService.Captions.Download(captionTrack.Id);
captionDownloadRequest.Tfmt = "srt";
captionDownloadRequest.Tlang = book.GetShortLanguageCode();
var captionStream = await captionDownloadRequest.ExecuteAsStreamAsync();

// Read the caption track into a string
var captionString = new StreamReader(captionStream).ReadToEnd();
youtube-api youtube-data-api
1个回答
0
投票

这似乎是 YouTube 数据 API v3 问题,我建议您使用

yt-dlp
使用:

yt-dlp --write-sub --sub-lang all,-live_chat 'VIDEO_ID'
© www.soinside.com 2019 - 2024. All rights reserved.