TMDb Connector (Motoko / tmdb-client)
The mandated recipe for reading TMDb movie, TV and people data from a Motoko canister via the `tmdb-client` mops package.
Dev & CodingAdvanced★ 428⑂ 45AI score 8/10Last updated: Sep 23, 2026
What it does
For Caffeine / Internet Computer backends that need movie data, this skill forbids hand-rolled ic.http_request calls to api.themoviedb.org and standardises on the generated tmdb-client mops package.
- Pins the only working credential path: a v4 read-access token with
?#bearer— and explains why the v3 API key and the generic?#apiKeyvariant return 401 - Groups the 111 usable operations (search, movie/TV detail, people, feeds, trending, discover, configuration) in a lookup table
- Flags the 13 broken ones — the 12 body-carrying writes that go out double-wrapped as
{"RAW_BODY":"…"}andmovieRecommendations, which throws on every success — with root causes - Ships a full
persistent actorexample: structural mapper that collapses TMDb's all-optional fields, poster URL assembly,max_response_bytessizing, and whyis_replicated = ?falseis correct - Lists real-world gotchas: integer IDs, 1-indexed
pagewith 422 beyond 500, ~50 req/s rate limit with noRetry-After, heterogeneoussearchMultiresults, and the 28 pruned operations
Who it's for
- Motoko developers wiring external HTTP APIs into Internet Computer canisters
- Teams building movie/TV catalog apps on the Caffeine stack
- Anyone who wants the limits of an OpenAPI-generated client mapped out before planning features
Examples
- Search box: call
searchMovieand flatten the optional-everything response into a narrowMovierecord the frontend can render without null checks. - Landing page rows: combine
movieNowPlayingListandtrendingMoviesfor "in cinemas" and "what's hot", cachingconfigurationDetailsonce in avar. - Title page:
movieDetailswithappendToResponse="credits,images,videos"to fetch credits, stills and trailers in a single outcall instead of four.
· · · Install guide · · ·
Try it now, no install
Paste this into Claude to use the skill without installing anything.
Read the instructions in this file and follow them to help me: https://raw.githubusercontent.com/aiskillstore/marketplace/HEAD/pending/caffeinelabs/connector-tmdb/SKILL.md What I want: (describe your task here)
If Claude can't open the link, open it yourself and paste the contents instead.
↓ If it works for you, download the ZIP below and install it. Then it runs on its own — no pasting each time.
Install in the Claude app (no terminal)
- Download the ZIP with the button below.
- In Claude, open Settings → Capabilities and turn on 'Code execution and file creation'. (one time)
- Go to Customize → Skills → + → 'Upload a skill' and upload the ZIP.
Install in Claude Code
Let Claude do it — paste this into Claude Code
Install the skill I found on Claude Skill Mart. Copy the pending/caffeinelabs/connector-tmdb folder from the GitHub repo aiskillstore/marketplace into my ~/.claude/skills/connector-tmdb/. When it's done, tell me in one line what this skill can do.
Install with a command instead
git clone https://github.com/aiskillstore/marketplace.git /tmp/marketplace && mkdir -p ~/.claude/skills/connector-tmdb && cp -r /tmp/marketplace/pending/caffeinelabs/connector-tmdb/* ~/.claude/skills/connector-tmdb/⚠ This is a third-party skill. Check the source repository before installing.
- Open a terminal and clone the repository:
git clone https://github.com/aiskillstore/marketplace.git /tmp/marketplace - Create the skill directory:
mkdir -p ~/.claude/skills/connector-tmdb - Copy the skill in:
cp -r /tmp/marketplace/pending/caffeinelabs/connector-tmdb/* ~/.claude/skills/connector-tmdb/ - Restart Claude Code and confirm
connector-tmdbshows up in your skill list. - In your Motoko project, add the dependency:
mops add tmdb-client - Mint a v4 read-access token at themoviedb.org/settings/api (the 32-char v3 API key will not work with this client).
- Ask Claude something like "build a TMDb movie search backend in Motoko" and the skill loads automatically. Keep the token out of the frontend: store it in actor state behind an authorization-gated setter and never return or log it.