{"name":"@deckyard/tmdb","description":"A typed client for The Movie Database: v4 auth, accounts and lists over the full v3 catalogue","versions":{"0.1.0":{"version":"0.1.0","kind":"git","url":"https://github.com/deckyard/deck-tmdb.git","ref":"0.1.0","commit":"92b94defb41cfc8f8f7df3490641e9648c7aaa61","checksum":"","yanked":false,"license":"LGPL-3.0-only","requires":{},"engines":{"jennifer":"\u003e=0.25.0"},"capabilities":["net"],"keywords":["tmdb","movies","television","rest","api"],"description":"A typed client for The Movie Database: v4 auth, accounts and lists over the full v3 catalogue","publishedAt":"1793218684","repoId":1432116398,"repoOwnerId":346943577,"repoOwner":"deckyard"}},"readme":"# @deckyard/tmdb\n\n[![test](https://github.com/deckyard/deck-tmdb/actions/workflows/test.yml/badge.svg)](https://github.com/deckyard/deck-tmdb/actions/workflows/test.yml)\n[![Documentation](https://img.shields.io/badge/docs-github%20pages-blue)](https://deckyard.github.io/deck-tmdb/)\n[![release](https://img.shields.io/github/v/release/deckyard/deck-tmdb)](https://github.com/deckyard/deck-tmdb/releases/latest)\n\nA typed [Jennifer](https://jennifer-lang.dev) client for\n[The Movie Database](https://www.themoviedb.org). One `Client` reaches both\nAPI generations: the v3 catalogue (search, discovery, films, series, people,\nimages, watch providers) and v4 user authentication, accounts and custom\nlists. Replies are folded into structs, arguments are checked before the\nrequest, and every failure is `Error{kind: \"tmdb\"}`.\n\n## Install\n\n```sh\njvc add @deckyard/tmdb\n```\n\nOr unpack `src/` from a release archive (`deckyard-tmdb-\u003cversion\u003e.tar.gz`) into\n`vendor/deckyard/tmdb/`.\n\nRequires Jennifer 0.25.0 or newer and the default `jennifer` binary: the deck\ndeclares the `net` capability, which `jennifer-tiny` lacks.\n\n## Example\n\n```jennifer\nuse io;\nimport \"@deckyard/tmdb/\" as tmdb;\n\n# TMDB_ACCESS_TOKEN=eyJ... jennifer run app.j\ndef c as tmdb.Client init tmdb.clientFromEnv();\ndef hits as tmdb.MoviePage init tmdb.searchMovies($c, \"blade runner\", 1);\n\nfor (def m in $hits.results) {\n    io.printf(\"%s (%s)  %.1f\\n\", $m.title, tmdb.year($m.releaseDate), $m.voteAverage);\n}\n\ndef film as tmdb.MovieBundle init tmdb.movieBundle($c, $hits.results[0].id);\nio.printf(\"%d min, directed by %s\\n\", $film.movie.runtime, tmdb.directorOf($film.credits));\n```\n\nThe token is the long `eyJ...` **API Read Access Token** from\n\u003chttps://www.themoviedb.org/settings/api\u003e, not the 32-character API key; see\n[Getting started](https://deckyard.github.io/deck-tmdb/getting-started.html).\n\n## Documentation\n\n[deckyard.github.io/deck-tmdb](https://deckyard.github.io/deck-tmdb/), with\nevery export in the\n[cheatsheet](https://deckyard.github.io/deck-tmdb/cheatsheet.html). Runnable\nprograms are in [`examples/`](examples). `tools/check-all.sh` runs the CI gate.\n\n## Licence\n\nLGPL-3.0-only, see [LICENSE](LICENSE). Copyright (C) 2026 mplx \u0026lt;mplx@jennifer-lang.dev\u0026gt;.\n\nThis product uses the TMDB API but is **not endorsed or certified by TMDB**.\nUsing the API means agreeing to its\n[terms of use](https://www.themoviedb.org/api-terms-of-use), which require\nattribution in any application built on it. The watch-provider data is\nJustWatch's and carries its own attribution requirement.\n"}