This is the NuGet package library that retrieves subtitles from a given YouTube video, inspired by @devhims' YouTube Caption Extractor.
- If you use this library on your Blazor WebAssembly project, you might encounter the CORS error. The only workaround is to use a facade API to retrieve the subtitles.
-
Install the NuGet package to your project.
-
Add the namespace to your code.
using Aliencube.YouTubeSubtitlesExtractor;
-
Get the YouTube video URL.
var youtubeUrl = "https://www.youtube.com/watch?v=i8tMiWHK05M";
-
Create an instance of
YouTubeVideo
class.var http = new HttpClient(); var youtube = new YouTubeVideo(http);
-
Extract subtitles from the given YouTube video URL. There are a few options to extract subtitles.
// Extract video details from the given YouTube video URL. VideoDetails details = await youtube.ExtractVideoDetailsAsync(youtubeUrl); // Extract a single subtitle from the given YouTube video URL. // - defaults to English (en) Subtitle subtitle = await youtube.ExtractSubtitleAsync(youtubeUrl); // Extract a single subtitle from the given YouTube video URL with the specified language code. // eg) Korean (ko) Subtitle subtitle = await youtube.ExtractSubtitleAsync(youtubeUrl, "ko"); // Extract list of subtitles from the given VideoOptions instance. // eg) English and Korean (ko) var options = new VideoOptions { Url = youtubeUrl, LanguageCodes = { "en", "ko" } }; List<Subtitle> subtitles = await youtube.ExtractSubtitlesAsync(options);
You can find a sample console app to extract YouTube video details from here. Alternatively, run the following command to run the console app.
dotnet run --project ./samples/YouTubeSubtitlesExtractor.ConsoleApp -- -u [YOUTUBE_VIDEO_URL]
Please leave any issues or feedbacks on the GitHub Issue page.
- devcontainer settings
- Icons made by Freepik from flaticon.com.