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

#1564 in Database interfaces

Download history

601 downloads per month

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

~7–18MB
~249K SLoC