tmdb 0.0.2-alpha.1

  • Installing
  • Versions
  • 42


A (TMDB) library for Dart.


  • Access to all API methods
  • Support for both console (dart:io) and web (dart:html) applications
  • User authentication, either with a username and password (obtains new session ID) or with a previously obtained session ID
  • You need to provide your own API key


See the full documentation.


First import the proper library for the platform.

If your code is running on the Dart VM (where you'd use dart:io) then:

import 'package:tmdb/io.dart';

If your code runs on the browser (where you'd use dart:html) then:

import 'package:tmdb/html.dart';

With the library imported you can just create a new instance (providing your API key) and access all of its methods.

For example, a simple console application to get the top rated movies would look like this:

// Import the proper library
import 'package:tmdb/io.dart';

main() async {
  // Create a new TMDBApi instance
  TMDBApi tmdb = new TMDBApi('YOUR_API_KEY_HERE');

  // Get the top rated movies
  Map topRated = await tmdb.movies.getTopRated();

  // Loop through the results and print the title, year, and rating
  topRated['results'].forEach((v) {
    var title = v['title'];
    var year = DateTime.parse(v['release_date']).year;
    var rating = v['vote_average'].toStringAsFixed(1);
    print("$title ($year) * $rating/10");


If you already have a valid session ID for the user, you can just feed it to the library and start using any method that requires authentication:

// Create instance
TMDBApi tmdb = new TMDBApi('YOUR_API_KEY_HERE');

// Set the session ID
tmdb.authentication.sessionId = 'SESSION_ID_HERE';

// Get the user's information
var info = await tmdb.account.getInfo();

If you don't have a session ID for the user you want to authenticate you can easily obtain one using the login method.

// Create instance
TMDBApi tmdb = new TMDBApi('YOUR_API_KEY_HERE');

// Log in with a username and password
await tmdb.authentication.login('USERNAME_HERE', 'PASSWORD_HERE');

// The session ID is now stored in tmdb.authentication.sessionId
// so you can start using any API method.

// Get the user's information
var info = await tmdb.account.getInfo();

IMPORTANT: You should only use the login method once for each user because the API will generate a new session ID every time you do so. Once you have obtained it you should save it somewhere safe and feed it to the library whenever you need to (which is usually right after calling new TMDBApi()).

Futures vs async/await

The easiest way to call the API methods is using the async/await syntax provided by Dart, like on the examples above.

To use it you just need to add the async modifier to the function that will be calling the asynchronous methods from this library. Then, prefix the actual call with await.

printMovieInfo(id) async {
  var info = await tmdb.movies.getInfo(id);

Or even

printMovieInfo(id) async {
  print(await tmdb.movies.getInfo(id));

If for any reason you can't or don't want to use async/await, you can just use the Futures directly:

printMovieInfo(id) {
  tmdb.movies.getInfo(id).then((info) {

Features and bugs

Please file feature requests and bugs at the issue tracker.

Change Log

All notable changes to this project will be documented in this file. This project adheres to Semantic Versioning.


0.0.2-alpha.1 - 2015-12-18


  • CHANGELOG links.


  • Bump version number. Again. Because I screwed up earlier.

0.0.1-alpha.3 - 2015-12-18


  • Version format.

0.0.1-alpha2 - 2015-12-18


  • README formatting.

0.0.1-alpha1 - 2015-12-18


  • All API methods implemented but untested. Highly unstable.

Use this package as a library

1. Depend on it

Add this to your package's pubspec.yaml file:

  tmdb: ^0.0.2-alpha.1

2. Install it

You can install packages from the command line:

with pub:

$ pub get

Alternatively, your editor might support pub get. Check the docs for your editor to learn more.

3. Import it

Now in your Dart code, you can use:

import 'package:tmdb/core.dart';
import 'package:tmdb/html.dart';
import 'package:tmdb/io.dart';
Version Uploaded Documentation Archive
0.0.2-alpha.1 Dec 18, 2015 Go to the documentation of tmdb 0.0.2-alpha.1 Download tmdb 0.0.2-alpha.1 archive
0.0.1-alpha2 Dec 18, 2015 Go to the documentation of tmdb 0.0.1-alpha2 Download tmdb 0.0.1-alpha2 archive
0.0.1-alpha1 Dec 18, 2015 Go to the documentation of tmdb 0.0.1-alpha1 Download tmdb 0.0.1-alpha1 archive
0.0.1-alpha.3 Dec 18, 2015 Go to the documentation of tmdb 0.0.1-alpha.3 Download tmdb 0.0.1-alpha.3 archive
Describes how popular the package is relative to other packages. [more]
Code health derived from static analysis. [more]
Reflects how tidy and up-to-date the package is. [more]
Weighted score of the above. [more]
Learn more about scoring.

The package version is not analyzed, because it does not support Dart 2. Until this is resolved, the package will receive a health and maintenance score of 0.

Analysis issues and suggestions

Support Dart 2 in pubspec.yaml.

The SDK constraint in pubspec.yaml doesn't allow the Dart 2.0.0 release. For information about upgrading it to be Dart 2 compatible, please see


Package Constraint Resolved Available
Direct dependencies
Dart SDK >=1.0.0 <2.0.0