#api-client #tmdb #video #methods #async-api-client

tmdb-api

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

22 releases

Uses new Rust 2024

1.0.0-alpha.5 Nov 30, 2025
1.0.0-alpha.4 Jun 18, 2025
1.0.0-alpha.3 May 9, 2025
0.9.1 Apr 14, 2025
0.3.3 Oct 26, 2022

#365 in Web programming

Download history 87/week @ 2025-12-17 40/week @ 2025-12-24 132/week @ 2025-12-31 48/week @ 2026-01-07 94/week @ 2026-01-14 101/week @ 2026-01-21 27/week @ 2026-01-28 41/week @ 2026-02-04 96/week @ 2026-02-11 73/week @ 2026-02-18 18/week @ 2026-02-25 66/week @ 2026-03-04 49/week @ 2026-03-11 3/week @ 2026-03-18 63/week @ 2026-03-25 57/week @ 2026-04-01

202 downloads per month
Used in 6 crates (3 directly)

MIT license

2MB
6.5K SLoC

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::client::Client;
use tmdb_api::client::reqwest::Client as ReqwestClient;

#[tokio::main]
async fn main() {
    let secret = std::env::var("TMDB_TOKEN_V3").unwrap();
    let client = Client::<ReqwestClient>::new(secret);
    let res = client.search_tvshows("simpsons", &Default::default()).await.unwrap();
    let item = res.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

~5–12MB
~199K SLoC