# Python __pycache__/ *.py[cod] *$py.class *.so .Python build/ develop-eggs/ dist/ downloads/ eggs/ .eggs/ lib/ lib64/ parts/ sdist/ var/ wheels/ *.egg-info/ .installed.cfg *.egg # Virtual Environment .venv/ venv/ ENV/ env/ # Kivy *.pyc # Media files (optional - remove if you want to track media) # # Coverage matters here: `media/*.mp4` matches files directly in media/, but NOT # media/edited_media/1/foo.jpg. Playlist content is downloaded per-site and must # never be committed, so the whole tree is ignored and only the directory # structure (via .gitkeep) is tracked. media/*.jpg media/*.jpeg media/*.png media/*.gif media/*.bmp media/*.mp4 media/*.avi media/*.mkv media/*.mov media/*.webm media/**/*.jpg media/**/*.jpeg media/**/*.png media/**/*.gif media/**/*.bmp media/**/*.mp4 media/**/*.avi media/**/*.mkv media/**/*.mov media/**/*.webm # Playlist cache (auto-generated from the server per device) playlists/server_playlist_*.json playlists/server_playlist.json # Logs *.log .kivy/ # IDE .vscode/ .idea/ *.swp *.swo # OS .DS_Store Thumbs.db .player_heartbear # NOTE: the line above is a long-standing typo for `.player_heartbeat` and is # kept only so nothing changes for existing clones. The correct patterns are # below — without them the player's runtime state files get committed (they # change every 10 seconds, which would create endless noise and merge conflicts). .player_heartbeat .player_stop_requested logs/startup_marker.txt logs/startup_crash.log logs/console_out.txt logs/console_err.txt logs/watchdog_test_*.txt # Player credentials — live auth_code/player_id/server_url. Never commit these: # a bundled copy made fresh builds boot "already authenticated" against an old # server and play a stale playlist. player_auth.json src/player_auth.json working_files/player_auth.json # Runtime browser profile (cache, not source). The player launches Chromium with # a dedicated --user-data-dir so it never touches the operator's own profile. # The wildcard covers probe/test profiles (e.g. .kiosk-profile-probe), which # otherwise get picked up as untracked files and are several MB of cache each. .kiosk-profile/ .kiosk-profile-*/ .webview2-profile/ # Monitoring output (generated per run, not source) logs/monitor*.csv logs/monitor*.log