MovieCollection.OpenSubtitles
1.0.0-preview.4
dotnet add package MovieCollection.OpenSubtitles --version 1.0.0-preview.4
NuGet\Install-Package MovieCollection.OpenSubtitles -Version 1.0.0-preview.4
<PackageReference Include="MovieCollection.OpenSubtitles" Version="1.0.0-preview.4" />
paket add MovieCollection.OpenSubtitles --version 1.0.0-preview.4
#r "nuget: MovieCollection.OpenSubtitles, 1.0.0-preview.4"
// Install MovieCollection.OpenSubtitles as a Cake Addin #addin nuget:?package=MovieCollection.OpenSubtitles&version=1.0.0-preview.4&prerelease // Install MovieCollection.OpenSubtitles as a Cake Tool #tool nuget:?package=MovieCollection.OpenSubtitles&version=1.0.0-preview.4&prerelease
Open Subtitles API
Unofficial implementation of the Open Subtitles API for .NET
Installation
You can install this package via the Package Manager Console
in Visual Studio.
Install-Package MovieCollection.OpenSubtitles -PreRelease
Configuration
Get or create a new static HttpClient
instance if you don't have one already.
// HttpClient lifecycle management best practices:
// https://learn.microsoft.com/dotnet/fundamentals/networking/http/httpclient-guidelines#recommended-use
private static readonly HttpClient httpClient = new HttpClient();
You need to set your api key and user-agent then pass it to the service's constructor.
// using System.Net.Http.Headers;
// using MovieCollection.OpenSubtitles;
var options = new OpenSubtitlesOptions
{
ApiKey = "your-api-key",
ProductInformation = new ProductHeaderValue("your-app-name", "your-app-version"),
};
var service = new OpenSubtitlesService(httpClient, options);
Alternatively, you can set the user-agent via HttpClient
's default request headers.
// using System.Net.Http.Headers;
var product = new ProductInfoHeaderValue("your-app-name", "your-app-version");
httpClient.DefaultRequestHeaders.UserAgent.Add(product);
Search for Subtitles
You can search for subtitles via the SearchSubtitles
method.
var search = new NewSubtitleSearch
{
ImdbId = 11204094,
};
var result = await service.SearchSubtitlesAsync(search);
You can also search by the movie name and year.
var search = new NewSubtitleSearch
{
Query = "Iron Man",
Year = 2008,
};
You can also specify season and episode number.
var search = new NewSubtitleSearch
{
Query = "Rick and Morty",
SeasonNumber = 5,
EpisodeNumber = 10,
};
You can also search by movie file hash.
string filePath = "D:\\path-to-file\\";
var search = new NewSubtitleSearch
{
// For best results with automatic searching based on file analysis,
// send the file name as a query together with the moviehash.
Query = Path.GetFileName(filePath),
// Open Subtitles is using a special hash function to match subtitle files against movie files.
// Hash is not dependent on file name of movie file.
MovieHash = OpenSubtitlesHasher.GetFileHash(filePath),
};
Please see the demo project for more examples.
Notes
- Please read Open Subtitles's terms of use before using their their services.
License
This project is licensed under the MIT License.
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net5.0 was computed. net5.0-windows was computed. net6.0 is compatible. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 was computed. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. |
.NET Core | netcoreapp2.0 was computed. netcoreapp2.1 was computed. netcoreapp2.2 was computed. netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
.NET Standard | netstandard2.0 is compatible. netstandard2.1 was computed. |
.NET Framework | net461 was computed. net462 was computed. net463 was computed. net47 was computed. net471 was computed. net472 was computed. net48 is compatible. net481 was computed. |
MonoAndroid | monoandroid was computed. |
MonoMac | monomac was computed. |
MonoTouch | monotouch was computed. |
Tizen | tizen40 was computed. tizen60 was computed. |
Xamarin.iOS | xamarinios was computed. |
Xamarin.Mac | xamarinmac was computed. |
Xamarin.TVOS | xamarintvos was computed. |
Xamarin.WatchOS | xamarinwatchos was computed. |
-
.NETFramework 4.8
- Newtonsoft.Json (>= 13.0.3)
-
.NETStandard 2.0
- Newtonsoft.Json (>= 13.0.3)
-
net6.0
- Newtonsoft.Json (>= 13.0.3)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
Version | Downloads | Last updated | |
---|---|---|---|
1.0.0-preview.4 | 50 | 10/25/2024 | |
1.0.0-preview.3 | 575 | 7/4/2022 | |
1.0.0-preview.2 | 621 | 11/21/2021 | |
1.0.0-preview.1 | 248 | 11/14/2021 |