1.9 KiB
1.9 KiB
Moonlight Drive-In
NFC-triggered video player for a home "drive-in" theatre: scanning a tag plays the mapped movie on a seamless dual-MPV player, with a web remote, network NFC clients and relay-controlled effects.
Repository: https://gitea.hideawaygaming.com.au/jessikitty/moonlight-drive-in
Architecture
- Player:
mpv_seamless_player.py/web_mpv_main.py— two MPV instances for gapless transitions; anti-repeat logic; manual and auto-cycle modes - Web:
web_interface.py— Flask + SocketIO remote/gallery on port 8547; APIPOST /api/video/play{"nfc_id": ...},POST /api/video/skip,GET /api/stats - Mappings:
key_mapping.txt(tag → video),folder_mapping.txt(tag → folder sequence),gallery_config.json(web UI) - Clients:
clients/— GUI/CLI/auto-connect network NFC clients with global input capture (pynput) - Effects:
esp32_relay_controller.py+theatre_automation.py— ESP32 Bluetooth relay - Deploy: Windows host, runs from
E:\DriveIn\, batch launchers
Related Repos
lego-dimensions-reader— LEGO Dimensions portal as a multi-pad NFC reader with LED effects (planned replacement for the ACR122)video-player-log-analyzer— HTML log analysis/report toolesp32-bluetooth-relay— relay firmware
Conventions
- Tkinter updates from threads go through
root.after(0, ...) - Console output is ASCII-only (
[WEB],[VIDEO]) — no emoji - Don't commit IPs beyond the LAN default; VPN addresses are
<redacted>
Session Log
- 2025-12-15 — ESP32 Bluetooth Relay Theatre Automation — Added relay driver and theatre automation layer over Bluetooth serial
- 2025-12-24 — NFC Network Client, Global Input Capture and Smart Connect — Remote NFC clients, focus-independent scanning, verified smart connect and 5-second CLI auto-start
Created by: Jess Rogerson (yelling commands at Claude.AI)