Skip to content

aliencube/youtube-subtitles-extractor

Repository files navigation

Icon YouTube Subtitles Extractor

Build and Test downloads version

This is the NuGet package library that retrieves subtitles from a given YouTube video, inspired by @devhims' YouTube Caption Extractor.

Known Issues

  • 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.

Getting Started

  1. Install the NuGet package to your project.

  2. Add the namespace to your code.

    using Aliencube.YouTubeSubtitlesExtractor;
  3. Get the YouTube video URL.

    var youtubeUrl = "https://www.youtube.com/watch?v=i8tMiWHK05M";
  4. Create an instance of YouTubeVideo class.

    var http = new HttpClient();
    var youtube = new YouTubeVideo(http);
  5. 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);

Sample Console App

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]

Issues or Feedbacks

Please leave any issues or feedbacks on the GitHub Issue page.

TO-DOs

  • devcontainer settings

Acknowledgments