https://github.com/vdsbenoit/auto-jingle
Tool to play a jingle at given interval. It also pauses & resumes the current Spotify playback
https://github.com/vdsbenoit/auto-jingle
Last synced: 5 days ago
JSON representation
Tool to play a jingle at given interval. It also pauses & resumes the current Spotify playback
- Host: GitHub
- URL: https://github.com/vdsbenoit/auto-jingle
- Owner: vdsbenoit
- License: mit
- Created: 2026-04-11T16:06:29.000Z (2 months ago)
- Default Branch: main
- Last Pushed: 2026-04-11T17:10:23.000Z (2 months ago)
- Last Synced: 2026-04-11T19:12:20.717Z (2 months ago)
- Language: TypeScript
- Homepage:
- Size: 43.9 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Auto Jingle
A standalone jingle scheduler that pauses Spotify at configured times, plays a jingle in QuickTime Player, then resumes Spotify.
> [!NOTE]
> Only works on macOS due to reliance on AppleScript for Spotify control and QuickTime for playback.
## Screenshot

## Features
- Scheduler with `HHhMM` times
- Live UI: status, next jingle, last run, and error display
- QuickTime playback
- Finder file picker for jingle file
- Auto jingle duration detection (`afinfo`, fallback to `mdls`)
- Editable schedule and force-play button
- Settings persistence in `~/.auto-jingle/settings.json`
## Requirements
### Use
- macOS
- Spotify app installed
- QuickTime Player available (built-in on macOS)
### Development
- macOS
- Deno
- Xcode Command Line Tools (`swiftc`, `iconutil`, `sips`)
## Quick start
```bash
deno task build:mac-app
```
Output:
- `dist/Auto Jingle.app`
- `dist/Auto Jingle.zip`
Install:
1. Open `dist/` in Finder.
2. Drag `Auto Jingle.app` into `/Applications`.
3. Launch from Applications.
First launch notes:
- Gatekeeper may block the app since it's unsigned. Use "Open Anyway" in System Preferences > Security & Privacy to allow it.
- Spotify / QuickTime automation will trigger macOS permissions prompts.
## Run in development
```bash
deno task dev
```
The app starts at `http://localhost:8844` and opens automatically in your browser.
## Environment variables
- `AUTO_JINGLE_PORT`
- Default: `8844`
- Purpose: HTTP port used by the web server.
- Example:
```bash
AUTO_JINGLE_PORT=9000 deno task dev
```
- `AUTO_JINGLE_NO_BROWSER`
- Default: unset (browser opens automatically)
- Purpose: disables auto-opening the UI in a browser when set to `1`.
- Example:
```bash
AUTO_JINGLE_NO_BROWSER=1 deno task dev
```
- `HOME`
- Default: inherited from your shell/session.
- Purpose: determines settings location (`$HOME/.auto-jingle/settings.json`).
- Fallback behavior: if `HOME` is unavailable, settings are stored in `settings.json` next to the app executable/project base directory.
## Standalone build
```bash
deno task compile
```
Binary output:
- `dist/auto-jingle`
Run it:
```bash
./dist/auto-jingle
```
## Distribution-safe signing (recommended)
1. List available signing identities:
```bash
security find-identity -v -p codesigning
```
2. Build with your Developer ID certificate:
```bash
AUTO_JINGLE_CODESIGN_IDENTITY="Developer ID Application: Your Name (TEAMID)" deno task build:mac-app
```
3. Share `dist/Auto Jingle.zip` (not the raw `.app` alone).
### Optional notarization (best for zero-friction install)
After configuring a notary keychain profile:
```bash
AUTO_JINGLE_CODESIGN_IDENTITY="Developer ID Application: Your Name (TEAMID)" \
AUTO_JINGLE_NOTARIZE_PROFILE="your-notary-profile" \
deno task build:mac-app
```
### If you already received a blocked build
On the target Mac, remove quarantine as a temporary workaround:
```bash
xattr -dr com.apple.quarantine "/Applications/Auto Jingle.app"
```