{"id":45405661,"url":"https://github.com/jflxcloud/nexroll","last_synced_at":"2026-04-24T19:02:05.062Z","repository":{"id":315259800,"uuid":"1058771289","full_name":"JFLXCLOUD/NeXroll","owner":"JFLXCLOUD","description":"A Management System for Media Server Prerolls.","archived":false,"fork":false,"pushed_at":"2026-04-20T00:57:34.000Z","size":46828,"stargazers_count":58,"open_issues_count":0,"forks_count":2,"subscribers_count":4,"default_branch":"main","last_synced_at":"2026-04-20T02:43:53.875Z","etag":null,"topics":["bumper","bumpers","coming-soon","comingsoon","docker","emby","emby-plugin","jellyfin","jellyfin-plugin","media-server","movies-and-cinemas","plex","plex-media-server","preroll","sequence","theater","unraid","unraid-templates"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/JFLXCLOUD.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-09-17T14:25:03.000Z","updated_at":"2026-04-20T00:57:19.000Z","dependencies_parsed_at":"2026-03-04T03:10:50.919Z","dependency_job_id":null,"html_url":"https://github.com/JFLXCLOUD/NeXroll","commit_stats":null,"previous_names":["jflxcloud/nexroll"],"tags_count":49,"template":false,"template_full_name":null,"purl":"pkg:github/JFLXCLOUD/NeXroll","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JFLXCLOUD%2FNeXroll","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JFLXCLOUD%2FNeXroll/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JFLXCLOUD%2FNeXroll/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JFLXCLOUD%2FNeXroll/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/JFLXCLOUD","download_url":"https://codeload.github.com/JFLXCLOUD/NeXroll/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JFLXCLOUD%2FNeXroll/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32236744,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-24T13:21:15.438Z","status":"ssl_error","status_checked_at":"2026-04-24T13:21:15.005Z","response_time":64,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["bumper","bumpers","coming-soon","comingsoon","docker","emby","emby-plugin","jellyfin","jellyfin-plugin","media-server","movies-and-cinemas","plex","plex-media-server","preroll","sequence","theater","unraid","unraid-templates"],"created_at":"2026-02-21T21:18:26.458Z","updated_at":"2026-04-24T19:02:05.056Z","avatar_url":"https://github.com/JFLXCLOUD.png","language":"JavaScript","funding_links":["https://ko-fi.com/j_b__"],"categories":[],"sub_categories":[],"readme":"\n\u003cdiv align=\"center\"\u003e\n  \u003cimg src=\"NeXroll/frontend/NeXroll_Logo_WHT.png#gh-dark-mode-only\" alt=\"NeXroll Logo\" width=\"500\"/\u003e\n  \u003cimg src=\"NeXroll/frontend/NeXroll_Logo_BLK.png#gh-light-mode-only\" alt=\"NeXroll Logo\" width=\"500\"/\u003e\n  \u003cbr\u003e\n \u003ca href=\"https://github.com/JFLXCLOUD/NeXroll/releases/latest\"\u003e\u003cimg src=\"https://badgen.net/github/release/JFLXCLOUD/NeXroll/stable?label=stable\u0026color=yellow\" alt=\"Stable Release\"/\u003e\u003c/a\u003e\n  \u003ca href=\"https://github.com/JFLXCLOUD/NeXroll/releases/latest\"\u003e\u003cimg src=\"https://img.shields.io/github/downloads/JFLXCLOUD/NeXroll/total?include_prereleases\u0026color=DE7716\" alt=\"Downloads\"/\u003e\u003c/a\u003e\n  \u003ca href=\"https://github.com/JFLXCLOUD/NeXroll/stargazers\"\u003e\u003cimg src=\"https://badgen.net/github/stars/JFLXCLOUD/NeXroll?color=yellow\" alt=\"GitHub Stars\"/\u003e\u003c/a\u003e\n  \u003ca href=\"https://github.com/JFLXCLOUD/NeXroll/blob/main/LICENSE\"\u003e\u003cimg src=\"https://badgen.net/github/license/JFLXCLOUD/NeXroll\" alt=\"License\"/\u003e\u003c/a\u003e\n  \u003cbr\u003e\n  \u003ca href=\"https://hub.docker.com/r/jbrns/nexroll\"\u003e\u003cimg src=\"https://img.shields.io/docker/pulls/jbrns/nexroll\" alt=\"Docker Pulls\"/\u003e\u003c/a\u003e\n  \u003ca href=\"https://discord.gg/R9eH7TbxEk\"\u003e\u003cimg src=\"https://img.shields.io/discord/1439077075117150313?logo=discord\u0026logoColor=white\u0026label=Discord\u0026color=5865F2\" alt=\"Discord\"/\u003e\u003c/a\u003e\n\n\u003c/div\u003e\n\n---\n\nNeXroll is a preroll manager for Plex, Jellyfin, and Emby that makes setup effortless. It runs natively on Windows and works in Docker, featuring a clean web interface, optional background service, and lightweight tray app. Everything is self-contained, and a single installer gets you up and running in minutes.\n\n---\n\n## Screenshots\n\n### Dashboard\n![Dashboard](docs/screenshots/N_Dashboard.png)\n\n### Preroll Management\n![Prerolls](docs/screenshots/prerolls.png)\n\n### Schedule Management\n![Schedule](docs/screenshots/schedule.png)\n\n### Calendar Year View\n![Calendar Year View](docs/screenshots/N_Calendar_Year.png)\n\n### NeX-Up - Radarr \u0026 Sonarr Integration\n![NeX-Up Connections](docs/screenshots/Nex-Up_Connections.png)\n\n### Community Prerolls\n![Community Prerolls](docs/screenshots/community_prerolls.png)\n\n---\n\n## Main Features\n\n- **NeX-Up** — Automatically download trailers for upcoming movies and TV shows from Radarr \u0026 Sonarr, with YouTube integration, dynamic intro generator with multi-language support (EN/FR/ES/DE), Coming Soon List generator, and sequence builder presets\n- **Preroll Management** — Upload videos, auto-generate thumbnails, organize with tags and multi-category assignments\n- **Smart Scheduling** — Daily, weekly, monthly, yearly schedules with recurrence patterns, fallback categories, and visual calendar views\n- **Sequence Builder** — Create ordered preroll sequences with random blocks and fixed selections\n- **Schedule Blend Mode** — Automatically blend prerolls from overlapping schedules (e.g., Christmas + New Year's)\n- **Priority \u0026 Exclusive Mode** — Control which schedule wins with priority levels (1-10) and exclusive override\n- **Holiday Browser** — Search holidays from 100+ countries and create schedules with one click\n- **Holiday Presets** — 32+ built-in holidays with one-click category and schedule creation\n- **Community Prerolls** — Browse and download from 1,300+ community prerolls at prerolls.uk\n- **Media Server Integration** — Connect to Plex, Jellyfin, or Emby with status monitoring and quick apply actions\n- **Backup \u0026 Restore** — Full database and file backups with one-click restore\n- **Windows Native** — One-click installer with optional Windows Service and System Tray app\n\n## Download and Install\n\n1. Download the latest `NeXroll_Installer.exe` from GitHub Releases:\n   https://github.com/JFLXCLOUD/NeXroll/releases\n2. Run `NeXroll_Installer.exe` (administrator recommended).\n3. Choose:\n   - Install location (default: `C:\\Program Files\\NeXroll`)\n   - Preroll storage directory (can be on any drive)\n4. Optional components you may select:\n   - Install as Windows Service (`NeXrollService`)\n   - Plex Stable Token setup (runs `setup_plex_token.exe`)\n   - Start with Windows (adds the tray app to Startup)\n   - Install FFmpeg via winget (for thumbnail generation)\n   - Windows Firewall rule (Allow inbound TCP 9393 for local web UI)\n5. Finish the installer and open the app from the Start Menu or tray menu.\n\nAfter install, visit http://localhost:9393 to use the web UI.\n\n\n---\n\n## What 's Installed\n\n- `NeXroll.exe`   the web application (FastAPI + bundled frontend)\n- `NeXrollService.exe`   optional Windows Service wrapper\n- `NeXrollTray.exe`   system tray app with quick actions\n- `setup_plex_token.exe`   helper to obtain a stable Plex token\n\nStart Menu shortcuts are created for NeXroll, NeXroll Tray, and Uninstall NeXroll. A desktop shortcut for NeXroll is also added.\n\n\n---\n\n## System Tray App\n\nThe tray icon provides quick actions:\n- Open   launches http://localhost:9393 (default action)\n- Start Service   attempts to start the Windows service (if installed)\n- Stop Service   stops the Windows service (if installed)\n- Restart Service   restarts the Windows service (if installed)\n- Start App (portable)   starts the packaged app directly (non service)\n- Check for updates   checks GitHub Releases and opens the latest release if a newer version is available (dialog is foreground and closable)\n- About   shows app information (dialog is foreground and closable)\n- GitHub   opens https://github.com/JFLXCLOUD/NeXroll\n- Exit   closes the tray app\n\nIf you selected Start with Windows, the tray app launches automatically at login.\n\n---\n\n## Windows Service (Optional)\n\nIf chosen during installation, the `NeXrollService` Windows Service is installed. You can manage it via Services.msc or the following commands (run from `C:\\Program Files\\NeXroll` or your chosen InstallDir):\n\n```\nNeXrollService.exe install\nNeXrollService.exe start\nNeXrollService.exe stop\nNeXrollService.exe remove\n```\n\nLogs (service mode): `%ProgramData%\\NeXroll\\logs\\service.log`\nLogs (packaged app): `%ProgramData%\\NeXroll\\logs\\app.log`\nLogs (tray): `%ProgramData%\\NeXroll\\logs\\tray.log`\nDatabase (packaged): `%ProgramData%\\NeXroll\\nexroll.db`\n\nTip: if a previous NeXroll instance is still running and occupying port 9393, the service may need a second start attempt after that instance is closed.\n\n---\n\n## Requirements\n\n- Windows 10/11 x64\n- FFmpeg for thumbnail generation (you can install it from the installer's optional components, or manually)\n- Network access to your Plex, Jellyfin, or Emby server\n- No Python required on user machines\n\n---\n\n## First Time Setup\n\n1. Open http://localhost:9393\n2. Connect to your media server:\n   - Connect to Plex, Jellyfin, or Emby using URL and credentials\n   - For Plex: Use your Plex URL and token; or run `setup_plex_token.exe` to create a long lived \"stable token\"\n3. Upload prerolls, create categories, and configure schedules.\n\n---\n\n## Upgrade / Uninstall\n\n- Upgrade: simply run the newer `NeXroll_Installer.exe` over the existing installation. Your configured Preroll storage path is preserved, and data is not removed.\n- Uninstall: use \"Uninstall NeXroll\" from the Start Menu (or Apps \u0026 Features). The installer removes the service and shortcuts; your Preroll storage directory is not deleted.\n\n---\n\n## Building From Source\n\nSee the full packaging guide in `NeXroll/Docs/PACKAGING.md`.\n\nPrerequisites (build machine):\n- Python 3.10+ (build time only)\n- pip install: `pyinstaller`, `pywin32`, `pystray`, `Pillow`\n- NSIS 3.x (`makensis` on PATH)\n\nBuild commands (run from the repository root):\n\n```\npy -m PyInstaller -y NeXroll\\build\\neXroll.spec\npy -m PyInstaller -y NeXroll\\build\\NeXrollService.spec\npy -m PyInstaller -y NeXroll\\build\\setup_plex_token.spec\npy -m PyInstaller -y NeXroll\\build\\NeXrollTray.spec\n\nmakensis NeXroll\\build\\installer.nsi\n```\n\nOutputs:\n- `dist\\NeXroll.exe`\n- `dist\\NeXrollService.exe`\n- `dist\\setup_plex_token.exe`\n- `dist\\NeXrollTray.exe`\n- `NeXroll\\build\\NeXroll_Installer.exe`  (Release asset is published as a generic name)\n\n---\n\n\n## Project Structure\n\n- Backend (FastAPI): `NeXroll/backend/`\n- Packaged runtime backend: `NeXroll/backend/`\n- Frontend (static build served by backend): `NeXroll/frontend/`\n- Windows Service wrapper: `NeXroll/scripts/windows_service.py`\n- System tray app: `NeXroll/scripts/tray_app.py`\n- PyInstaller specs:\n  - `NeXroll/build/neXroll.spec`\n  - `NeXroll/build/NeXrollService.spec`\n  - `NeXroll/build/NeXrollTray.spec`\n  - `NeXroll/build/setup_plex_token.spec`\n- NSIS installer: `NeXroll/build/installer.nsi`\n\n---\n\n## Troubleshooting\n\n- \"Service did not respond in time\"\n  - Ensure no other process is using port 9393; stop any `NeXroll.exe` that 's running, then start the service again.\n- UI not reachable at http://localhost:9393\n  - If you selected the firewall component, verify the inbound rule \"NeXroll (TCP 9393)\" exists. Otherwise, allow inbound TCP 9393 or re-run the installer and select the firewall option.\n- Service logs location\n  - Check `%ProgramData%\\NeXroll\\logs\\service.log` for service-mode startup and health probe messages.\n- Thumbnails not created\n  - Install FFmpeg (choose the installer component, or install manually); re upload a preroll.\n- Tray icon not shown\n  - Run \"NeXroll Tray\" from Start Menu; pin it so it's always visible.\n- Media server connection issues\n  - Verify your Plex, Jellyfin, or Emby server is reachable from the machine, and credentials are valid (retry `setup_plex_token.exe` for Plex if needed).\n\n---\n\n## License\n\nMIT. Third party components remain under their respective licenses.\n\n\n---\n\n## Support\n\nIf NeXroll is helpful, consider supporting ongoing development:\n\n[![Ko-fi](https://img.shields.io/badge/Ko--fi-Support%20Me-FF5E5B?style=for-the-badge\u0026amp;logo=ko-fi\u0026amp;logoColor=white)](https://ko-fi.com/j_b__)\n\nJoin the community on Discord for support, feature requests, and discussions:\n\n[![Discord](https://img.shields.io/badge/Discord-Join%20Server-5865F2?style=for-the-badge\u0026logo=discord\u0026logoColor=white)](https://discord.gg/R9eH7TbxEk)\n\nJoin the subreddit:\n\n[![Reddit](https://img.shields.io/badge/Reddit-r%2FNeXroll-FF4500?style=for-the-badge\u0026logo=reddit\u0026logoColor=white)](https://www.reddit.com/r/NeXroll/)\n\n---\n\n## Credits\n\nCommunity Prerolls powered by [Typical Nerds](https://typicalnerds.uk/) - Thank you for making thousands of prerolls available to the community!\n\n---\n\n## A Note of Transparency\n\nI have immense respect for software developers and the craft of programming. I want to be upfront: I'm not a professional developer — I'm an IT manager with a passion for media server environments and home automation.\n\nNeXroll was made possible through collaboration with [Claude](https://www.anthropic.com/claude) (Anthropic's AI assistant). From architecture decisions to debugging edge cases, Claude was an invaluable partner in bringing this project to life. This transparency feels important in an era where AI-assisted development is becoming more common.\n\nIf you're a developer reviewing this code, I welcome feedback, pull requests, and patience with any rough edges. The goal was always to create something useful for the Plex/Jellyfin community, and I hope NeXroll delivers on that.\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjflxcloud%2Fnexroll","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjflxcloud%2Fnexroll","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjflxcloud%2Fnexroll/lists"}