Chrome extensions
This page covers the Chrome extensions that capture watch history from streaming services and send it directly to Obsidian.
Personal Data Hub series
- Personal Data Hub
- Foundations
- Data pipelines
- QuickAdd scripts
- Chrome extensions - You are here
- Plugins
The problem with streaming services
With four children I have subscriptions to a range of streaming services: Prime, Netflix, Stan, Apple TV. I have also had subscriptions I have since cancelled: Disney+, Paramount, Binge.
Here is what I learned the hard way: once you cancel a streaming subscription, there is no way to get your watch history back. It is gone until you pay again. And even then, I am not sure how long they keep it.
Years of watch history, gone. Shows I watched with my kids that I cannot remember. Movies I meant to recommend to friends. All lost because I assumed the data would always be there.
That is why I built these extensions. Capture the data while you still have access. Do not wait until you cancel.
Overview
For Prime Video and Netflix, I built Chrome extensions that scrape watch history and send it directly to Obsidian via the Local REST API. They auto-trigger the import script and check what is already imported so only new items get queued.
| Extension | Service | Method |
|---|---|---|
| Prime Direct-to-Vault | Amazon Prime Video | REST API |
| Netflix Direct-to-Vault | Netflix | REST API |
How it works
The extension talks directly to Obsidian through the Local REST API plugin. It queries the vault to find what has already been imported, filters out duplicates, and queues only new items. No intermediate CSV files. No manual copying.
Prerequisites
-
Obsidian with these plugins installed:
- Local REST API - for communication with the extension
- QuickAdd - for running the import script
-
TMDB API Key from themoviedb.org
1. Prime Video extension
I built the Prime extension first because that is where most of my watch history lives. The watch history page at Prime is paginated and requires scrolling to load older items. The extension handles that automatically.
Installation
- Open Chrome and navigate to
chrome://extensions/ - Enable "Developer mode" (toggle in top-right)
- Click "Load unpacked"
- Select the
chrome-extensions/prime/direct-to-vaultfolder
Configuration
- Navigate to your Prime Video Watch History
- Click the extension icon in your browser toolbar
- Enter the Obsidian API settings:
- API URL:
https://127.0.0.1:27124(default) - API Key: Paste your Local REST API key
- API URL:
- Click "Test Connection" to verify
Usage
-
Optionally set a date filter:
- All items: Import everything
- From date: Import items from a specific date onwards
- Date range: Import items within a specific range
-
Click "Import to Obsidian"
- The extension scrolls through your entire watch history
- It checks your vault for existing Prime entries
- Only new items are queued for import
-
Run the QuickAdd script in Obsidian
- The extension writes items to
.obsidian/prime-import-queue.json - Run your "Import Shows" QuickAdd macro to process them
- The extension writes items to
What gets created
The import script will:
- Search TMDB for movies and series
- Create movie/series notes with cover images
- Create episode notes for series
- Create watch log entries in
shows/watched/ - Update watch counts and first/last watched dates
2. Netflix extension
Netflix was easier to build because their watch history page is simpler. But it had its own challenges. Netflix displays titles differently depending on your region and sometimes changes show names entirely.
Installation
Same process as Prime Video:
- Open
chrome://extensions/ - Enable "Developer mode"
- Click "Load unpacked"
- Select the
chrome-extensions/netflix/direct-to-vaultfolder
Configuration
- Navigate to your Netflix Viewing Activity
- Click the extension icon
- Enter the same Obsidian API settings as Prime
Usage
Same workflow as Prime Video:
- Set date filter if needed
- Click "Import to Obsidian"
- Run QuickAdd script to process queue
Folder structure
The extensions create/update files in these locations:
.obsidian/
prime-import-queue.json # Temporary queue file
netflix-import-queue.json # Temporary queue file
watch-import-progress.json # Tracks processed items
quickadd-secrets.json # API keys
shows/
movies/ # Movie notes
series/ # Series and episode notes
ShowName/
_series.md # Series note
S01E01 - Episode.md # Episode notes
watched/ # Watch log entries
2026-01-15-1-MovieName.md
2026-01-15-1-ShowName-S01E01.md
covers/
movies/ # Movie cover images
series/ # Series cover images
Troubleshooting
"Cannot connect to Obsidian"
- Ensure Obsidian is running
- Check that Local REST API plugin is enabled
- Try visiting
https://127.0.0.1:27124in your browser to accept the SSL certificate
"Invalid API key"
- Copy a fresh API key from Local REST API settings
- Make sure you are using the full key (it is quite long)
Items not being imported
- Check the browser console for errors
- Ensure you are on the correct watch history page
- Try scrolling down manually first to ensure items load
Duplicate detection not working
- The extension queries
shows/watched/for files withsource: "[[Prime]]"orsource: "[[Netflix]]" - Make sure previous imports used the correct source
Security notes
- The extension only activates on the specific streaming service URLs
- API keys are stored in Chrome's local storage (not synced)
- The Local REST API only accepts connections from localhost
Lesson learned
Do not wait until you cancel a service to export your data. By then it is too late.
I run these extensions monthly now. It takes two minutes and ensures I never lose watch history again.
Next: Plugins covers the custom Calendar View plugin.