A near-complete wrapper for v3 of TMDb's API (TheMovieDb - https://www.themoviedb.org/).
All commits to master produce an Alpha package that can be found here. Read more on how to use these packages.
Documentation
Most of the library is self-explaining, and closely follows the possibilities at the official TMDb documentation site: developers.themoviedb.org.
Examples
Simple example, getting the basic info for "A good day to die hard".
TMDbClient client = new TMDbClient("APIKey");
Movie movie = client.GetMovieAsync(47964).Result;
Console.WriteLine($"Movie name: {movie.Title}");
Using the extra features of TMDb, we can fetch more info in one go (here we fetch casts as well as trailers):
TMDbClient client = new TMDbClient("APIKey");
Movie movie = await client.GetMovieAsync(47964, MovieMethods.Credits | MovieMethods.Videos);
Console.WriteLine($"Movie title: {movie.Title}");
foreach (Cast cast in movie.Credits.Cast)
Console.WriteLine($"{cast.Name} - {cast.Character}");
Console.WriteLine();
foreach (Video video in movie.Videos.Results)
Console.WriteLine($"Trailer: {video.Type} ({video.Site}), {video.Name}");
It is likewise simple to search for people or movies, for example here we search for "007". This yields basically every James Bond film ever made:
TMDbClient client = new TMDbClient("APIKey");
SearchContainer<SearchMovie> results = client.SearchMovieAsync("007").Result;
Console.WriteLine($"Got {results.Results.Count:N0} of {results.TotalResults:N0} results");
foreach (SearchMovie result in results.Results)
Console.WriteLine(result.Title);
However, another way to get all James Bond movies, is to use the collection-approach. TMDb makes collections for series of movies, such as Die Hard and James Bond. I know there is one, so I will show how to search for the collection, and then list all movies in it:
TMDbClient client = new TMDbClient("APIKey");
SearchContainer<SearchCollection> collectons = client.SearchCollectionAsync("James Bond").Result;
Console.WriteLine($"Got {collectons.Results.Count:N0} collections");
Collection jamesBonds = client.GetCollectionAsync(collectons.Results.First().Id).Result;
Console.WriteLine($"Collection: {jamesBonds.Name}");
Console.WriteLine();
Console.WriteLine($"Got {jamesBonds.Parts.Count:N0} James Bond Movies");
foreach (SearchMovie part in jamesBonds.Parts)
Console.WriteLine(part.Title);
async
and awaitableGetMovie
, GetPerson
etc.[Flags]
type. This means you can combine them: MovieMethods.Casts | MovieMethods.Trailers
Movie
are null, until you request the extra data using the enums like above.