我使用 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();