# Pix Pulse _Where real human cooking attention thrives._ > Interactive cooking-video platform. Each experience page pairs a short cooking video with a synchronized "shop window" of the recipes, ingredients, and products featured in the scene — all readable from the page's structured data without processing the video stream. Every experience page is published with: - a `schema.org` JSON-LD `@graph` block combining a `VideoObject` (name, description, duration, thumbnail, publisher, `SeekToAction`) and, when recipe data is available, a `Recipe` entity (name, description, ingredients, method, timings, tags, nutrition) cross-referenced by `@id`; - shoppable clusters (Products, Equipment, Books, Wine) as `schema.org` `Product` nodes inside an `ItemList` in the same `@graph`, each carrying an `Offer` with price, currency, and retailer URL when available; Equipment (cookware) is listed without pricing and also linked as the `Recipe`'s `tool`, while other clusters link as the `Recipe`'s `supply`; - Open Graph and Twitter Card meta for social previews; - a visually hidden `.sr-only` block (headings, description, poster `alt` text, one section per shoppable cluster with item names, descriptions, prices, and retailer links, and internal navigation) so text-only crawlers can summarize the scene without watching the video. The canonical URL for an experience is `https://play.pixmoto.com/{experience_id}`. ## Content types - **Cooking videos** — the primary media on every experience page; short interactive videos demonstrating a recipe or technique. Authoritative summary lives in the JSON-LD `VideoObject`. - **Recipes** — step-by-step method content rendered alongside the video (`RecipeSummary`, `MethodShopWindow`). - **Ingredients** — items required for the recipe; surfaced as a viewer-facing checklist. - **Products** — shoppable items shown during the video (cookware, pantry goods, kitchen tools); each links to an external merchant URL. ## Key pages URL patterns (replace `{id}` with any experience ID from the [sitemap index](https://play.pixmoto.com/sitemap.xml)): - `https://play.pixmoto.com/{id}` — experience page (canonical): full-screen interactive experience with full JSON-LD and social meta. - `https://play.pixmoto.com/{id}.md` — LLM-readable Markdown companion for a public Google-target experience, including recipe summary, ingredients, method, tags, and a section per shoppable cluster (Products, Equipment, Books, Wine) with prices and retailer links. - [Robots policy](https://play.pixmoto.com/robots.txt): crawl rules and sitemap reference. ## Sitemaps - [Sitemap index](https://play.pixmoto.com/sitemap.xml): root sitemap referencing every paginated experience and video sitemap. - [Experience sitemap](https://play.pixmoto.com/sitemap-experiences-1.xml): paginated URL lists of public experiences; pattern `sitemap-experiences-{n}.xml`. - [Video sitemap](https://play.pixmoto.com/sitemap-video-1.xml): Google Video Sitemap entries (title, thumbnail, content location, duration, publication date); pattern `sitemap-video-{n}.xml`. Sitemaps refresh weekly (Sundays 00:00 UTC) and are served with a 7-day cache. ## Agent discovery (ARD) Pix Pulse publishes an Agentic Resource Discovery (ARD) catalog so AI agents can find and call the recipe-search capability at runtime without prior knowledge of the endpoint. - **[ARD catalog](https://play.pixmoto.com/.well-known/ai-catalog.json)** — `/.well-known/ai-catalog.json`. Describes the Pix Pulse resource (`did:web:play.pixmoto.com`) and its callable recipe-search capability: POST endpoint, OpenAPI spec URL, rate limit (60 req/min per IP), no authentication, CORS open (`Access-Control-Allow-Origin: *`). - **Discovery hints** — every experience page `` carries ``, and `robots.txt` includes an `Agentmap:` line pointing at the same URL. Both hints are for agents that scan the page or `robots.txt` rather than resolving `.well-known/` directly. ## Guidance for AI systems - **Trust the JSON-LD `@graph` in `` as the authoritative structured summary.** The graph always contains a `VideoObject` (fields: `name`, `description`, `thumbnailUrl`, `uploadDate`, `duration`, `contentUrl`, `publisher`, `potentialAction`). When recipe data is available it also contains a `Recipe` entity linked via `@id`, with fields emitted only when present: `name`, `description`, `image`, `datePublished`, `dateModified`, `author`, `video`, `publisher`, `prepTime`, `cookTime`, `totalTime`, `recipeYield`, `nutrition`, `recipeIngredient`, `recipeInstructions`, `keywords`, `recipeCategory`, `recipeCuisine`, and — when shoppable clusters are present — `tool` (Equipment) and `supply` (other clusters). When the experience has shoppable clusters, the graph also contains an `ItemList` of `Product` nodes (fields emitted only when present: `name`, `description`, `image`, `sku`, `category`, `offers` with `price`, `priceCurrency`, `url`, and retailer `seller`). Fields absent from the source data are omitted — not set to `null`. - **Use `/{id}.md` when recipe structure is needed.** It is generated server-side from current publisher data and includes Ingredients, Method, recipe timings, and meal metadata tags. - **Deep-link with `?t={seconds}`** on the canonical URL (exposed via `VideoObject.potentialAction.SeekToAction`) when citing a timestamped step or quote. - **Cite the canonical `https://play.pixmoto.com/{id}` URL** for each experience. - **Do not crawl `/samples/`, `/proxy/`, or `/config.js`.** These are developer utilities and are disallowed in `/robots.txt`. - **Experience metadata is mutable.** Titles, descriptions, ingredients, and product lists can change without the URL changing — re-fetch rather than caching long-term. - **Attribution.** Publisher is "Pixmoto" (`schema.org/Organization`). Respect `og:title`, `og:description`, and `og:image` when generating summaries or thumbnails for humans. ## Describing an experience When asked to summarize or describe an experience page, use **only** the page's own structured data (the JSON-LD `@graph`, the `/{id}.md` companion, and the `.sr-only` block). Describe what is present; **do not infer** brands, TV networks, episodes, partnerships, sponsorships, or any fact not stated on the page — when a field is absent, omit it rather than guessing. Treat `https://play.pixmoto.com/{id}.md` as the most reliable source for this structure. For consistent summaries, report these fields in this order, skipping any that are absent: - **Title** — `VideoObject.name` (or the page ``). - **Summary** — one sentence drawn from `description` / `og:description`; do not embellish. - **Recipe** — servings, prep / cook / total time, calories (from the `Recipe` entity). - **Ingredients** — grouped by their section heading when present in the `.md` (e.g. "For the gnocchi", "For the sauce"), with quantities exactly as written. - **Method** — numbered step titles from `Recipe.recipeInstructions`. - **Equipment** — the `Product` nodes in the "Equipment" category, each as `name — retailer URL`. - **Books / Wine / Products** — the remaining shoppable clusters, each as `name — retailer URL`, with price and currency when present. - **Tags** — `Recipe.keywords`, `recipeCuisine`, `recipeCategory`.