[![Release][release-shield]][releases] [![Build][build-shield]][build-workflow] [![Stars][stars-shield]][repository] [![Issues][issues-shield]][issues] [![MIT License][license-shield]](LICENSE)

YouTube Playlist Sync

Turn public YouTube playlists into Obsidian notes with metadata, transcripts, indexes, and optional AI summaries.

Install in Obsidian · Download a release · Usage guide · Report a bug · Request a feature

Table of Contents
## About The Project ![Generated video note with transcript][product-screenshot] For Obsidian users who learn or research through YouTube, this plugin turns a playlist into searchable notes in your vault. Each video gets its own note with metadata and any available transcript. YouTube syncing requires no user-supplied YouTube API key; AI summaries are optional. The plugin supports Obsidian on desktop, iOS, iPadOS, and Android. ### Features - Fetches each configured playlist straight from YouTube (via the same internal API youtube.com uses — no YouTube API key required). - **First sync**: creates one note per video in `YouTube//`. - **Later syncs**: only creates notes for videos that are **new** to the playlist. Existing user content is preserved. - Fetches the **transcript** for each video when one exists (readable paragraphs or timestamped lines) and embeds the video or thumbnail. - Maintains an `_Index.md` per playlist (table of all videos) and a root `Index.md`. - Runs automatically: **when Obsidian opens**, on an **interval while Obsidian is active**, and via a **Sync now** command / ribbon button. Mobile re-checks the interval after the app resumes. - Optional AI summaries with Summary, Key Takeaways, Important Concepts, Action Items, and Questions / Things to Explore. - AI provider presets for **OpenAI** and **NVIDIA NIM**, plus a **Custom OpenAI-compatible** endpoint option. - Users control the AI base URL, API protocol, model ID, and SecretStorage credential. - AI summaries can run automatically for new notes, manually for the active note, or in bulk for existing notes that are missing summaries. - Regenerating an AI summary replaces only the plugin-managed AI block and preserves the rest of the note. - A validated YAML template controls video-note frontmatter, with an explicit preview-and-confirm migration for existing notes. - **Your statistics:** View collection totals and local activity counters, pause recording, reset counters, and preview or copy an aggregate report. Nothing is uploaded automatically. Video notes are preserved during repeat syncs. The plugin-managed playlist and root indexes are regenerated, so keep personal annotations in video notes or separate notes. ### Recent additions - **Your statistics (0.4.0):** Count playlists, notes, transcripts, AI summaries, and sync runs locally. Existing notes contribute to collection totals; activity begins when recording starts. - **Custom AI instructions:** Keep the built-in summary prompt, append your own guidance, or replace the guidance while retaining the structured summary format. - **Custom video-note properties:** Define video frontmatter with a validated YAML template and preview or migrate existing generated notes without changing their bodies. - **Timestamped summary fix:** Manual and bulk AI summaries now strip the plugin's timestamp links before sending transcript text to the selected provider. - **Safer AI response parsing:** Malformed summary arrays are rejected instead of being processed as untyped values. ### Screenshots
Settings, playlist management, note properties, and walkthrough #### Configure sync and note output ![Sync settings][sync-screenshot] #### Manage multiple YouTube playlists ![Playlist management][playlists-screenshot] #### Generated video note metadata ![Generated video note properties][properties-screenshot] #### Playlist index with linked notes ![Playlist index][index-screenshot] #### Visual walkthrough ![YouTube Playlist Sync walkthrough][walkthrough] [Download the short walkthrough video](assets/screenshots/playlist-sync-walkthrough.mp4)
### Built With - [Obsidian Plugin API](https://docs.obsidian.md/Home): Vault, HTTP, settings, and SecretStorage APIs. - [TypeScript](https://www.typescriptlang.org/) and [esbuild](https://esbuild.github.io/): plugin source and bundling. - [Vitest](https://vitest.dev/): unit tests. ### Works with your Obsidian workflow - **Dataview:** query the generated frontmatter to build dashboards for channels, playlists, tags, and upload dates. - **Templater:** use the stable video-note properties as inputs for your own note templates and workflows. - **QuickAdd:** connect Obsidian commands and capture flows around a repeatable playlist-sync workflow. - **Excalidraw:** link generated video notes from visual maps, lesson plans, and research diagrams.

Back to top

## Getting Started Install the released plugin to use it in a vault. Node.js and npm are needed only for [development](#development). ### Prerequisites - **Obsidian 1.11.4 or later**, with community plugins enabled. - At least one **public YouTube playlist** and network access to YouTube. - For optional AI summaries, a compatible endpoint and an API key if the endpoint requires one. ### Installation #### From the community plugin directory [Install YouTube Playlist Sync from the Obsidian Community Plugins directory][community-listing], then enable it under **Settings → Community plugins**. #### With BRAT 1. Install **BRAT** from the community plugin directory. 2. In BRAT settings, add `https://github.com/DagerottDev/Youtube_Obsidian_Sync` as a beta plugin. 3. Reload Obsidian and enable **YouTube Playlist Sync**. #### Manually 1. Download **`main.js`** and **`manifest.json`** from the [latest release][latest-release]. 2. In your vault, create `.obsidian/plugins/youtube-playlist-sync/` if it does not exist. 3. Copy both files into that folder. 4. Reload Obsidian and enable **YouTube Playlist Sync** under **Settings → Community plugins**.

Back to top

## Usage 1. **Settings → YouTube Playlist Sync → Playlists** — paste a public playlist URL (e.g. `https://www.youtube.com/playlist?list=PL...`) and click **Add**. Repeat for as many playlists as you want. 2. Click **Sync now** (or the ribbon icon, or the command palette → "Sync YouTube playlists now"). The first sync creates all video notes; later syncs only add new ones. Open a generated video note and check its properties, video embed, and transcript. With the default settings, the output looks like this: ```text YouTube/ ├── Index.md └── / ├── _Index.md ├──