VLC Lua extension that syncs playback position to Emby as a resume point.
git clone https://github.com/lingfish/vlc-emby-play-sync
cd vlc-emby-play-sync
./install.shRestart VLC, then enable the extension via View → Extension Manager or the Extensions menu.
Open View → Extension Manager → Emby Play Sync → Configure and fill in:
| Field | Required | Description |
|---|---|---|
| Emby Server URL | Yes | http://host:8096 |
| API Key | Yes | From Emby Admin → Advanced → Security |
| User ID | Yes | Emby username or UUID |
| Local path prefix | No | VLC-side mount path (e.g. /mnt/nas/) |
| Emby path prefix | No | Emby-side library path (e.g. /shared/) |
Path prefixes let VLC find the right Emby item when the file path differs (e.g. NFS mount vs Emby's internal path).
- When a file starts playing, VLC fires
input_changed()→ match file path to an Emby item viaGET /Items?Path= - Plays, pauses, and stops push position ticks to Emby via the standard
/Sessions/Playingendpoints - On stop, position is also written directly to Emby's
POST /Users/{UserId}/Items/{ItemId}/UserDataAPI for reliable resume-point storage
- VLC 3.x
- Emby Server 4.x
| File | Purpose |
|---|---|
emby-play-sync.lua |
VLC Lua extension (single file) |
install.sh |
Symlinks extension into ~/.local/share/vlc/lua/extensions/ |
AGENTS.md |
Architecture notes for AI coding assistants |
If this extension helps you, consider buying me a coffee:
