---
name: pathe-movie-65af0b2ad273
description: Lookup Pathé Netherlands movies, posters, descriptions, cinemas, and showtimes via the Pathé JSON APIs. Trigger when the user mentions a Pathé movie/show, wants a poster, asks about a description/rating, or requests showtimes for a specific cinema.
---

# Pathé Movie Skill

## Summary
- Always talk to the `https://www.pathe.nl/api` endpoints with the required browserlike headers (see `scripts/pathe_movie.py`).
- Use the config at `config/pathe_movie_config.json` to know which cinemas to assume unless the user explicitly names a different cinema.
- Rely on `scripts/pathe_movie.py` for reusable helpers (sanitizing queries, fuzzy matching, best-match selection, and fetching downstream endpoints).
- When uncertain, reference `references/api.md` for payload shape, field names, and expected response structures.

## Search flow
1. Clean the user’s movie name by removing filler words (`the`, `a`, `an`, `of`, `in`, `on`, `for`, `and`).
2. Call `/api/search/full?q=...` with the sanitized query.
3. If multiple entries return, run a fuzzy title match (difflib) to pick the closest `title`. Keep the `slug`, `poster` (use `poster.lg`), and `contentRating` fields for later requests.
4. If a poster is required, return the `poster.lg` URL (fall back to `poster.md`/`posterPath` when necessary).

## Movie detail flow
- Given a slug, call `/api/show/{slug}?language=nl`.
- Pull `contentRating.description` and `synopsis` (some entries have `null`; handle gracefully) plus any extras such as `genres`, `directors`, `actors`, and `trailers` as context.
- Poster references now live under `posterPath` before falling back to the search response’s `poster`.

## Cinema flow
- Query `/api/show/{slug}/cinemas?language=nl`. Filter the returned cinema keys against `approvedCinemas` in the config unless the user asks for others.
- For each cinema we need more detail about, call `/api/cinema/{cinema}?language=nl` to fetch the official `name`, `citySlug`, and `services`/`alerts` metadata.

## Showtimes
- Use `/api/show/{slug}/showtimes/{cinema}?language=en` to get schedules. Responses are dictionaries keyed by date (`YYYY-MM-DD`). Each value is an array of showtimes; every entry contains at least a `time` string (plus `screen`, optional `language`, `format`, etc.).
- If the array is empty, return a note that there are currently no scheduled showings.

## Testing notes
- Ran `/api/search/full?q=matrix` to confirm the payload includes `slug`, `title`, `poster`, `contentRating`, and `genres`.
- Called `/api/show/the-matrix-41119` to verify `contentRating.description`, `synopsis`, and `posterPath` fields; the synopsis can be null and the posterPath may be missing, so always null-check.
- Queried `/api/cinema/pathe-zaandam` to inspect the returned `name`, `citySlug`, and service metadata (there is no `shows` list, so the cinema object is mostly static info).
- Hit `/api/show/iron-lung-51335/showtimes/pathe-zaandam` to confirm the endpoint returns a list; it was empty for that slug, showing you must handle zero-showtime responses.
- Pulled `/api/shows?language=nl` to understand the bulk structure: dozens of entries with `slug`, `posterPath`, `contentRating`, `genres`, and `next24ShowtimesCount`.

## Media delivery notes
- Always download poster images (and extra stills) locally before sending them through WhatsApp. Save them under `/tmp` or another temporary location so the gateway can read the file.
- When the user explicitly requests a poster via WhatsApp, attach the local path in the `message` tool `media` field (e.g., `/tmp/bluey_poster.jpg`). The WhatsApp docs describe that outbound media accepts local paths, so this ensures the actual image is delivered instead of a URL.
- Keep the text part of the `message` tool call descriptive (e.g., "Here’s the Bluey poster you asked for"), and rely on the downloaded file for the visual.

Follow these instructions whenever the user asks about search, posters, descriptions, cinema availability, or showtimes so the skill always produces accurate Pathé Netherlands results.

---
Source attribution: kbarbel640-del
Original project: https://github.com/kbarbel640-del/skills/blob/e7e336ac628c3e3bd771aff1aaa469c93778f94a/skills/humboldtjs/pathe-movie/SKILL.md
License: MIT
License information: https://opensource.org/license/mit
Original upstream instructions; downloaded from Mega AI Hub.

## Upstream license notice

MIT License

Copyright (c) 2026 clawdbot

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.



# Mega AI Hub resource metadata

Creator / publisher: kbarbel640-del
Original project: https://github.com/kbarbel640-del/skills/blob/e7e336ac628c3e3bd771aff1aaa469c93778f94a/skills/humboldtjs/pathe-movie/SKILL.md
Attribution basis: Source repository record

Fields of work: Marketing
Roles: Content Marketer, Influencer Marketer, Social Media Manager
Specialties: Specialty not specified
Tools: Pathe Json Api, Whatsapp
Country applicability: Netherlands
Classification basis: Source catalog labels
Instruction SHA-256: cd73c1c0835b1f59d40e279a3b6bfa6e16e1404c31907a176171ae19d20db73d
