How ostlerdev/popcorntv works
PopcornTV was an Apple TV media-browsing and playback application: an Apple TV redirected through the host’s DNS/web server, received generated XML catalogs, and could select and play movie or TV streams. The graph retains the documented browsing, quality selection, subtitles, favorites, and fan-art capabilities. Source excerpts are partial; where they do not establish exact wiring, related components are shown without speculative edges.
Main entry points: webserver.js HTTP and HTTPS server · streamer.js Streamer selection · TVApi.js TV metadata · dns.js DNS redirection
Components 23
Apple TV experience
- Application entry
atv.js - DNS redirection
dns.js - HTTP and HTTPS server
webserver.js - Client interface
assets/js/application.js - XML templates
assets/templates - XML generation
XMLGenerator.js
Catalog and metadata
- Movie metadata
MoviesAPI.js - TV metadata
TVApi.js - Fan-art generation
fanartGenerator.js
Playback delivery
- Streaming server
streamer-server.js - Streamer selection
streamer.js - Stream progress
lib/streamers/base.js - Torrent streamer
lib/streamers/torrent.js - HTTP streamer
lib/streamers/http.js - File streamer
lib/streamers/file.js - YouTube streamer
lib/streamers/youtube.js
Settings and integrations
- User settings
settings.js - Settings file
settings.js - Subtitle lookup
SubtitleAPI.js
Other components
- Apple TV
- Trakt service
- OpenSubtitles
- Torrent peers
Connections 25
- Application entry → HTTP and HTTPS server: starts
- Application entry → DNS redirection: starts
- Apple TV → DNS redirection: queries
- DNS redirection → HTTP and HTTPS server: redirects
- Apple TV → HTTP and HTTPS server: requests
- HTTP and HTTPS server → XML generation: requests XML
- XML generation → XML templates: renders
- HTTP and HTTPS server → Movie metadata: requests metadata
- HTTP and HTTPS server → TV metadata: requests metadata
- TV metadata → Trakt service: requests data
- TV metadata → Fan-art generation: requests artwork
- HTTP and HTTPS server → User settings: reads and updates
- User settings → Settings file: reads and writes
- HTTP and HTTPS server → Subtitle lookup: requests subtitles
- Subtitle lookup → OpenSubtitles: searches and downloads
- HTTP and HTTPS server → Streaming server: serves streams
- Streaming server → Streamer selection: selects stream
- Streamer selection → Stream progress: uses base
- Streamer selection → Torrent streamer: selects source
- Streamer selection → HTTP streamer: selects source
- Streamer selection → File streamer: selects source
- Streamer selection → YouTube streamer: selects source
- Torrent streamer → Torrent peers: retrieves pieces
- HTTP and HTTPS server → Client interface: serves interface
- Client interface → Apple TV: presents controls