#tmdb #async #api #tmdb-api #reqwest-executor

tmdb-api

Yet another TMDB client. This one is using async methods.

22 releases

Uses new Rust 2024

new 0.9.1 Apr 14, 2025
0.8.0 Mar 26, 2024
0.5.2 Nov 28, 2023
0.5.0 Jul 26, 2023
0.3.3 Oct 26, 2022

#270 in Web programming

Download history 4/week @ 2025-02-01 5/week @ 2025-02-08 26/week @ 2025-02-15 78/week @ 2025-02-22 85/week @ 2025-03-01 85/week @ 2025-03-08 50/week @ 2025-03-15 6/week @ 2025-03-22 6/week @ 2025-04-05 208/week @ 2025-04-12

224 downloads per month
Used in movie-rename

MIT license

2MB
7K SLoC

Another implementation of a client for the TMDB API

It provides a support for async and implements each command using the Command pattern.


Rust client for The Movie DB API

This is yet another client for TMDB, but it supports async functions.

Installing

cargo add tmdb-api

Usage

use tmdb_api::tvshow::search::TVShowSearch;
use tmdb_api::prelude::Command;
use tmdb_api::client::Client;
use tmdb_api::client::reqwest::ReqwestExecutor;

#[tokio::main]
async fn main() {
    let secret = std::env::var("TMDB_TOKEN_V3").unwrap();
    let client = Client::<ReqwestExecutor>::new(secret);
    let cmd = TVShowSearch::new("simpsons".into());

    let result = cmd.execute(&client).await.unwrap();
    let item = result.results.first().unwrap();
    println!("TVShow found: {}", item.inner.name);
}

Features

Running the tests

cargo test

If you want to run some integration tests, just export a TMDB_TOKEN_V3 environment variable and run

cargo test --features integration

Dependencies

~1–13MB
~144K SLoC