-
-
Notifications
You must be signed in to change notification settings - Fork 37
YouTube Tracker
OpenSource Clipping includes a lightweight, local YouTube Playlist Snapshot Tracker. It helps you track which YouTube videos you've already used for clipping, ensuring you don't process duplicate content across different playlists or manual picks.
Snapshot Behavior: This is a local tracker, not a live background sync. Data is only fetched from YouTube when you explicitly add a playlist or click the "Pull Again" button. All data is securely stored locally in a SQLite database.
- Python 3.10+
-
yt-dlpinstalled (comes automatically with the project requirements)
The tracker features a clean, dark-mode web dashboard. To launch it, run:
python youtube_tracker/server.pyThen, open http://127.0.0.1:8765 in your browser.
- Go to the Dashboard and paste any YouTube playlist URL.
- Click Add Playlist. The tracker fetches metadata for every video and stores it locally.
- Refresh / Pull Again: Clicking the "🔄 Pull Again" button re-fetches the playlist. New videos are added, missing ones are marked (never deleted), and your local statuses remain intact.
- Switch to the + Manual Video tab on the Dashboard.
- Paste a single YouTube video URL.
- It will be added directly to the "Manual Videos" virtual playlist.
Each video has a global status across the entire tracker (even if it appears in multiple playlists):
- Unused — Not yet processed.
- Candidate — Marked for future clipping.
- Used — Successfully clipped and processed.
- Skipped — Intentionally bypassed.
Click the status pill or ✏️ button to edit. You can add extra metadata such as:
- The generated Clip Title
- The Used Date
- Local Output Path
- Published URL
- Custom Notes
- Global Search: Search instantly across video titles, channel names, custom notes, and clip titles.
- Channels View: Browse your database grouped by the original YouTube channel. Easily filter by "Not Used Yet" to find fresh, unclipped content from a specific creator.
- Duplicates View: Automatically identify videos that appear in multiple playlists across your database.
Ready to clip a video? Click the 📋 copy button on any video card to instantly copy the processing command:
python main.py --url "https://www.youtube.com/watch?v=..."(You can configure your default preferred flags in the Settings panel)
You can back up or export your tracking data from the Settings page:
- Export JSON — Full metadata dump.
- Export CSV — Simple spreadsheet of videos and their statuses.
The SQLite database is located at youtube_tracker/youtube_tracker.sqlite3.
| Table | Purpose |
|---|---|
channels |
Original YouTube channels |
sources |
Playlists, manual source, and channel sources |
videos |
Unique videos (deduplicated by youtube_video_id) |
source_videos |
Link table mapping videos to playlists |
video_status |
The global status per video (unused/candidate/used/skipped) |
pull_runs |
The sync history of playlist refreshes |
pull_run_videos |
The exact list of videos seen during a specific pull |
settings |
Key-value store for UI settings and default flags |
Resetting: If you need to completely restart, you can delete
youtube_tracker/youtube_tracker.sqlite3. A new empty database will be created the next time you start the server.