YoutubeExplode is a .NET library that provides an abstraction layer over YouTube's internal API for querying metadata and downloading content.
The library solves the problem of programmatically accessing YouTube video, playlist, and channel information without relying on an official API. It works by scraping raw page data and reverse-engineering YouTube's internal endpoints to extract metadata, resolve video streams, and retrieve closed caption tracks. The tool exposes its functionality through a single entry point, the YoutubeClient class, with operations organized under Videos, Playlists, Channels, and Search properties.
Developers should choose this library if they need to build .NET applications that interact with YouTube content at scale or require access to stream metadata and download capabilities. It suits projects that need to work with video streams in various quality levels, including audio-only and video-only variants. An extension package, YoutubeExplode.Converter, provides integration with FFmpeg for downloading and converting videos. The library is distributed as a NuGet package and can be internalized as a dependency if preferred.
The project maintains active engagement with reverse-engineering challenges as YouTube's internal structures change, evidenced by documentation of the engineering approach. Development is community-funded through donations. The tool handles the complexity of YouTube's stream categorization, including the deprecation of muxed streams and the need to separately resolve and combine audio and video streams for highest quality output.