ISchemm.DurationFinder 4.1.0

.NET Standard 2.0
dotnet add package ISchemm.DurationFinder --version 4.1.0
NuGet\Install-Package ISchemm.DurationFinder -Version 4.1.0
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="ISchemm.DurationFinder" Version="4.1.0" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add ISchemm.DurationFinder --version 4.1.0
#r "nuget: ISchemm.DurationFinder, 4.1.0"
#r directive can be used in F# Interactive, C# scripting and .NET Interactive. Copy this into the interactive tool or source code of the script to reference the package.
// Install ISchemm.DurationFinder as a Cake Addin
#addin nuget:?package=ISchemm.DurationFinder&version=4.1.0

// Install ISchemm.DurationFinder as a Cake Tool
#tool nuget:?package=ISchemm.DurationFinder&version=4.1.0


This library will attempt detect the duration of a video, given a URL that points to either a raw video resource (that you might put in a <video> tag) or a supported video-sharing site.


  • SchemaOrgDurationProvider (for pages with a <meta itemprop="duration"> tag)
  • OpenGraphDurationProvider (for pages with a <meta property="og:video:duration"> or <meta property="video:duration"> tag)
  • OEmbedDurationProvider (for pages that provide oEmbed discovery through a <link> element to a JSON endpoint which contains a non-standard duration property)
  • HlsDurationProvider (for HLS VOD playlists)
  • MP4DurationProvider (for MPEG-4 Part 14 containers, such as .mp4 and .m4a - requires HTTP range request support on the remote server)
  • VorbisDurationProvider (for Ogg containers - requires HTTP range request support on the remote server, and the file must contains a Vorbis stream)

Additional providers that are not included in Providers.All but are used internally:

  • ChunklistDurationProvider (for HLS VOD chunklists)
  • JsonDurationProvider (for JSON files with a numeric duration property)


  • YouTube (SchemaOrgDurationProvider)
  • SoundCloud (SchemaOrgDurationProvider)
  • Vimeo (OEmbedDurationProvider)
  • Twitch (OpenGraphDurationProvider)
  • Dailymotion (OpenGraphDurationProvider)
  • HLS (HlsDurationProvider)
  • .mp4 (MP4DurationProvider)
  • .m4a (MP4DurationProvider)
  • .ogg (VorbisDurationProvider)
  • .oga (VorbisDurationProvider)
  • .ogv (VorbisDurationProvider)


  • Use ChainedDurationProvider to combine multiple providers (or just use the static object Providers.All)
  • Call the extension function GetDurationAsync(Uri) on the resulting provider object

Each provider will check the content type of the GET response, and only download what data is necessary. The first provider to come up with a valid duration value will be used, and any remaining providers will be skipped. If none of the providers come up with a result, GetDurationAsync(Uri) will check for a <link rel="canonical"> tag and try again (provided that the URL in the tag has not been attempted yet).

Product Versions
.NET net5.0 net5.0-windows net6.0 net6.0-android net6.0-ios net6.0-maccatalyst net6.0-macos net6.0-tvos net6.0-windows net7.0 net7.0-android net7.0-ios net7.0-maccatalyst net7.0-macos net7.0-tvos net7.0-windows
.NET Core netcoreapp2.0 netcoreapp2.1 netcoreapp2.2 netcoreapp3.0 netcoreapp3.1
.NET Standard netstandard2.0 netstandard2.1
.NET Framework net461 net462 net463 net47 net471 net472 net48
MonoAndroid monoandroid
MonoMac monomac
MonoTouch monotouch
Tizen tizen40 tizen60
Xamarin.iOS xamarinios
Xamarin.Mac xamarinmac
Xamarin.TVOS xamarintvos
Xamarin.WatchOS xamarinwatchos
Compatible target framework(s)
Additional computed target framework(s)
Learn more about Target Frameworks and .NET Standard.

NuGet packages (1)

Showing the top 1 NuGet packages that depend on ISchemm.DurationFinder:

Package Downloads

A .NET library to get duration of a video from its URL. Supports MP4, HLS (VOD), YouTube and Twitch (if you provide API keys), Vimeo, Dailymotion, and SoundCloud.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last updated
4.1.0 177 3/20/2022
4.0.0 161 3/19/2022
1.0.1 169 3/14/2022
1.0.0 158 3/14/2022