13 unstable releases

0.7.1 Jul 24, 2024
0.7.0 Jul 21, 2023
0.6.2 Jan 10, 2023
0.5.0 Jun 19, 2022

#313 in Web programming

MIT license

32KB
786 lines

The Movie Database

The Movie Database

This is an async wrapper around the TMDb API.

Usage

use tmdb_async::Client;

#[tokio::main]
async fn main() {
	let tmdb = Client::new(env!("TMDB_API_KEY").to_string());
	let search_result = client.movie_search("Interstellar", Some(2014)).await.unwrap();
	let movie = client.movie_by_id(search_result.results[0].id, false, false).await.unwrap();
	println!("{:#?}", movie);
}

Actions

Currently there are 3 actions available:

  • Fetching by ID
  • Searching by name and (optionally) year of release
  • Finding by external ID (IMDb ID, TVDB ID)

Additionally, two media types are currently supported:

  • Movies
  • TV series

Fetching

If you know its ID, you can fetch a movie using that.

let movie = tmdb.movie_by_id(157336).await.unwrap();

You can request some more data with the append to response feature.

let movie = tmdb.movie_by_id(2277, true, true).await.unwrap();

Searching

You can search for movies and series by title and year.

let page = tmdb.movie_search("Bicentennial Man", Some(1999)).await.unwrap();
let movies = page.results;

If you require additional details that aren't returned by the search, you can search then fetch:

let page = tmdb.movie_search("Bicentennial Man", Some(1999)).await.unwrap();
let movie = tmdb.movie_by_id(page.results[0].id, true, true).await.unwrap();

Finding

Finding a movie with an external ID is currently supported with IMDB IDs and, for TV series, TVDB IDs.

let movie = tmdb.movie_by_imdb_id(816692).await.unwrap();

Acknowledgements

Dependencies

~6–18MB
~248K SLoC