Need help with TMDbLib?
Click the “chat” button below for chat support from the developer who created it, or find similar developers for support.

About the developer

LordMike
228 Stars 91 Forks MIT License 844 Commits 10 Opened issues

Description

C#.Net library for TheMovieDB

Services available

!
?

Need anything else?

Contributors list

# 48,410
C#
c-sharp
entity-...
entity-...
535 commits
# 71,127
React
TypeScr...
messeng...
Clojure...
56 commits
# 167,875
C#
tmdb
55 commits
# 534,268
Shell
home-au...
iOS
HTML
10 commits
# 264,989
C++
Shell
Kotlin
tmdb
7 commits
# 46,687
cloudfl...
scrapin...
CSS
jellyfi...
4 commits
# 16,997
F#
.NET
c-sharp
kibana
2 commits
# 206,832
CSS
nextjs
Redis
stackex...
1 commit
# 594,430
JavaScr...
C#
tmdb
1 commit
# 423,804
C#
Shell
aspnet-...
tmdb
1 commit
# 426,439
Shell
C#
CSS
vue2
1 commit
# 60,077
css-fra...
c-sharp
Ember
algolia...
1 commit

TMDbLib Generic Build NuGet GHPackages

A near-complete wrapper for v3 of TMDb's API (TheMovieDb - https://www.themoviedb.org/).

Using alpha packages

All commits to master produce an Alpha package that can be found here. Read more on how to use these packages.

Index

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 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 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);

Tips

  • All methods are
    async
    and awaitable
  • Most methods are very straightforward, and do as they are named,
    GetMovie
    ,
    GetPerson
    etc.
  • Almost all enums are of the
    [Flags]
    type. This means you can combine them:
    MovieMethods.Casts | MovieMethods.Trailers
  • TMDb are big fans of serving as little as possible, so most properties on primary classes like
    Movie
    are null, until you request the extra data using the enums like above.

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.