Firefox add-on
The playlog add-on for Firefox tracks YouTube and Twitch playback in the browser and resumes across devices. It runs on desktop Firefox and on Firefox for Android. This guide assumes a running playlog server; see getting started for bringing one up.
What it tracks
Section titled “What it tracks”On YouTube, the extension tracks watch pages, shorts, and live pages on youtube.com, www.youtube.com, m.youtube.com, and music.youtube.com; youtu.be links are tracked once they redirect to a watch page.
On Twitch it tracks VODs — twitch.tv/videos/… on the bare, www., and m. hosts — with positions for resume, and live channel pages as watch-time sessions without positions.
A playback session records a start when playback begins, a position heartbeat every 30 seconds and on pause, and an end when you navigate away or close the page.
Time spent in ads is not tracked: ads gate session start, heartbeats, and resume on both sites.
Page URLs are recorded with credential-bearing query parameters such as token and api_key stripped.
Resume is freshest-wins against the server’s latest position.
When you open something you started elsewhere, the extension asks the server where that item left off and seeks there — unless the site, or an explicit ?t= start time, has already restored a newer position.
Resume applies to recorded content, not live streams.
Install on desktop Firefox
Section titled “Install on desktop Firefox”The extension — add-on id playlog@joaqim.xyz — is signed for unlisted distribution, so there is no listing page to search on addons.mozilla.org.
Open https://playlog.joaqim.com/files/playlog-firefox-0.1.0.xpi in Firefox and confirm the install prompt.
Firefox 140 or newer is required.
Install on Android
Section titled “Install on Android”Release Firefox on Android cannot install unlisted add-ons: opening the XPI URL only downloads the file, and without a public listing there is no install entry to tap. Firefox Nightly or Beta installs the downloaded XPI through its debug menu:
- Download the signed XPI from
https://playlog.joaqim.com/files/playlog-firefox-0.1.0.xpi. - Open Settings, then About Firefox, and tap the Firefox logo five times.
- Choose “Install add-on from file” and pick the downloaded XPI.
Firefox 142 or newer is required on Android.
Configure
Section titled “Configure”Open the extension’s options page; Firefox offers it on first install. Set three fields:
- Server URL, the address of your playlog server, for example
http://10.100.0.1:7600. - Token, the device token when the server runs bearer authentication (the default); leave it empty when the server’s auth is off.
- Device id, pre-filled with a generated value such as
firefox-ab12cd; rename it to something you will recognize in the history.
Saving asks Firefox for permission to reach the server host and immediately sends any queued events.
One version note on the token field: it arrived in extension version 0.2.0.
The signed build available for installation is still 0.1.0, which has no token field and sends no authorization header, so it connects only to servers with token authentication turned off.
Until a signed 0.2.0 is available, using a token requires an unsigned 0.2.0 build — installable in Developer Edition or Nightly with xpinstall.signatures.required set to false in about:config.
Behavior worth knowing
Section titled “Behavior worth knowing”Events queue locally in the browser while the server is unreachable and flush once it answers — on a once-a-minute timer, on regaining connectivity, and on save. Failed sends retry with a growing delay: 15 seconds doubling up to a 30-minute cap. A batch the server refuses with a client error is kept rather than discarded; fix the cause, a wrong token for instance, and press “Send queued events now”. Events the server quarantined are listed on the options page, as is the last resume-lookup error — a 401 there points at the token field.
Verify it works
Section titled “Verify it works”Play a video on YouTube or Twitch, then confirm the events arrived:
curl -H "Authorization: Bearer <token>" "http://127.0.0.1:7600/v1/events?limit=10"The endpoint, its parameters, and the event schema are documented in the HTTP API reference. Finally, start the same item on another device: playback should resume at the server’s latest position.