TheMovieDB

Crates.ioTheMovieDB
lib.rsTheMovieDB
version0.1.0
created_at2025-08-07 20:39:48.359221+00
updated_at2025-08-07 20:39:48.359221+00
descriptionA robust and idiomatic Rust API wrapper for The Movie Database (TMDb) v3 API.
homepagehttps://github.com/Junaid433/TheMovieDB
repositoryhttps://github.com/Junaid433/TheMovieDB
max_upload_size
id1785794
size184,278
Junaid Rahman (Junaid433)

documentation

README

TheMovieDB Rust API Wrapper

Rust CI Run Examples

This repository hosts TheMovieDB, a robust and idiomatic Rust API wrapper for The Movie Database (TMDb) v3 API. This library is designed to provide a comprehensive and user-friendly interface for interacting with TMDb's extensive dataset, enabling developers to effortlessly fetch and manage data related to movies, TV shows, people, and more. It is an ideal solution for applications requiring seamless integration with TMDb, such as media management tools, recommendation systems, or data analysis platforms.

Key Features

TheMovieDB offers extensive coverage of the TMDb API, including:

  • Account Management: Programmatic interaction with user accounts, encompassing list management, marking favorite content, and submitting ratings.
  • Authentication: Secure handling of user authentication and guest sessions to facilitate personalized and authorized API requests.
  • Changes: Mechanisms to track and retrieve recent updates and modifications to movie, TV show, and personnel data within the TMDb ecosystem.
  • Configuration: Access to essential TMDb API configuration data, such as country codes, job roles, supported languages, and timezones, vital for developing localized applications.
  • Discover: Advanced functionalities for discovering movies and TV shows based on diverse criteria, including genre, release date, popularity, and more.
  • Find: Efficient retrieval of TMDb data using external identifiers from other prominent databases (e.g., IMDb, TVDB, Freebase).
  • Genres: Comprehensive lists of movie and TV show genres, enabling effective content categorization and filtering.
  • Movies: Detailed information retrieval for movies, including cast and crew details, trailers, reviews, release dates, and associated collections. Access to data concerning production companies and keywords is also provided.
  • People: In-depth information on actors, directors, and other crew members, including biographies, filmographies, and social media links.
  • Search: Robust search capabilities to locate movies, TV shows, people, collections, companies, and keywords across the entire TMDb database.
  • TV: Detailed information for television series, individual seasons, and specific episodes, encompassing data on networks, episode groups, and air dates.

Installation

To integrate TheMovieDB into your Rust project, add the following dependency to your Cargo.toml file:

[dependencies]
TheMovieDB = "0.1.0"

API Key Configuration

Access to the TMDb API necessitates an API key. If you do not possess one, it can be readily obtained by registering on the official TMDb website.

For secure and convenient access, it is recommended to configure your API key as an environment variable named TMDB_API_KEY:

export TMDB_API_KEY="your_api_key_here"

Usage Examples

Below is a fundamental example illustrating how to retrieve movie information using the library:

use TheMovieDB::movies::Movies;

#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
    // Initialize the Movies API client with a movie ID (e.g., 550 for Fight Club)
    let movies = Movies::new(550);
    let movie_info = movies.info(None).await;
    println!("Movie Info: {:#?}", movie_info);

    Ok(())
}

Usage Examples

For a comprehensive understanding of the library's capabilities and a wider array of API call demonstrations, please consult the examples/ directory within this repository. Each example showcases specific functionalities and serves as a practical guide for implementation.

Documentation

Detailed and automatically generated documentation for TheMovieDB is available in the docs/ directory. This documentation provides in-depth information on every module, function, and data structure, serving as the primary reference for developers.

Contributing

Contributions to TheMovieDB are highly encouraged. If you have suggestions for improvements, new feature implementations, or bug fixes, please feel free to open an issue or submit a pull request. Prior to contributing, kindly review our CONTRIBUTING.md guidelines to ensure adherence to project standards.

License

This project is distributed under the MIT License. Refer to the LICENSE file for complete licensing details.

Support and Contact

For any inquiries, issues, or general communication, please utilize the following channels:

We appreciate your interest in TheMovieDB and look forward to your contributions and feedback. Happy coding! 🎬

Commit count: 0

cargo fmt