Skip to content

firetv: add the two clean store screenshots and the hero preview - #86

Closed
ralyodio wants to merge 2 commits into
masterfrom
worktree-firetv-ip-fix
Closed

ralyodio wants to merge 2 commits into
masterfrom
worktree-firetv-ip-fix

Conversation

@ralyodio

@ralyodio ralyodio commented Nov 5, 2026

Copy link
Copy Markdown
Contributor

Follow-up to #85. Adds the replacement store art and encodes the three traps found while capturing it.

The screenshots (both 1920×1080, both from /tv-preview, both checked by eye): 01-hero.png — real hero, headline and search bar above our own 12-card grid; 02-grid.png — the grid alone. Our typographic tiles, invented show names, example.com hosts, no third-party artwork or titles anywhere.

Why not the obvious sources, now documented in store/capture.sh:

  • Not the home page. Below its hero it renders the "deep catalogues" row — real cover art, and two of those shows are the ones Amazon named. ?hero=1 reproduces the hero above a clean grid.
  • Not /search, even empty: sponsored ad, plus a real third-party domain in the help text.
  • Not the public hostname. p0dcasters answers a headless browser with its own x402 paywall after 20 requests/hour, so the first two attempts captured "You have used up the free allowance". A browser UA is also required — the default HeadlessChrome string is treated as a crawler.

bun test: 97 pass, 7 skip, 0 fail. tsc --noEmit clean. next build clean.

🤖 Generated with Claude Code

ralyodio and others added 2 commits November 5, 2026 00:02
…ting

Amazon rejected com.p0dcasters.tv 1.0.0 on 2026-11-04 under the Intellectual
Property and Copyright policy, naming the Mighty Oaks Foundation and Harry
Sisson. They were right: the store screenshots were live captures of /search,
so real cover art and real show titles - Mighty Oaks Daily Devotional, The
Harry Sisson Show and a dozen others - were sitting in the listing. A feed
being public does not license its artwork to us.

Screenshots: new /tv-preview renders the real card grid with invented shows and
no image URLs, so <Art> falls back to its own typographic tile and every square
is drawn by us. store/capture.sh takes the 1920x1080 store shots from it with
headless Chrome - the app is a WebView of this site at this size, so that is
what the TV shows, without needing the Android SDK. The eight rejected shots
are deleted, and emulator-test.sh now says in its header that it is a
functional test whose results pages must never become store art.

Copy: the home hero, the page description and the OG image all name-dropped
TWiT, NPR, the BBC, Anchor, Buzzsprout and Libsyn. That reads as a claim of
affiliation we do not have, so it is now "every hosting platform" and "the big
network libraries". The /networks link stays, and the directory data itself is
untouched - naming the host a feed actually comes from is factual and is the
product.

The listing also now states plainly that podcasters is a reader: it lists
public RSS feeds, plays them from the publisher's own server, hosts and alters
nothing, and will remove a feed on request.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Follow-up to the IP fix. Capturing the replacements turned up three traps, all
now encoded in store/capture.sh so the next person does not rediscover them:

- The home page cannot be a store screenshot. Below its hero it renders the
  "deep catalogues" row, which is real cover art, and two of those shows are
  the ones Amazon named. /tv-preview?hero=1 gives the same hero and search bar
  above our own sample grid instead.
- /search is out too, even with no query: it carries a sponsored ad and names
  a real third-party domain in its help text.
- Capture against the app container, not the public hostname. p0dcasters
  answers a headless browser with its own x402 paywall after 20 requests an
  hour, so the first two captures were screenshots of "You have used up the
  free allowance". A browser user agent is needed as well, because the default
  HeadlessChrome string is treated as a crawler.

Both shots are checked by eye: our own typographic tiles, invented show names,
example.com hosts, no third-party anything.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@ralyodio

ralyodio commented Nov 5, 2026

Copy link
Copy Markdown
Contributor Author

Superseded by a branch cut from master — the reused branch name kept pre-squash history and could not merge cleanly.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant