YoutubeExplode is a library that provides an interface to query metadata of Youtube videos, playlists and channels, as well as to resolve and download video streams and closed caption tracks. Behind a layer of abstraction, the library parses raw page content and uses reverse-engineered AJAX requests to retrieve information. As it doesn't use the official API, there's also no need for an API key and there are no usage quotas.
- Using nuget:
Install-Package YoutubeExplode
- Continuous integration
- Retrieves information about channels, videos, playlists, media streams and closed caption tracks
- Handles normal, legacy, signed, restricted, non-embeddable and unlisted videos
- Works with media streams of all types - muxed, embedded adaptive, dash adaptive
- Downloads videos by exposing their media content as a stream
- Parses and downloads closed caption tracks
- Uses strong types and enums for all metadata
- Provides methods to validate IDs and to parse IDs from URLs
- Fully asynchronous API
- Targets .NET Framework 4.5+, .NET Core 1.0+ and .NET Standard 1.1+
- No external dependencies
- No need for an API key and no usage quotas
Check out project's wiki for usage examples and other information.
You can also use the demo projects as a reference point.