~/ skills / yt-lokus
YouTube → Lokus
Donnez un lien YouTube à Claude : il en fait une note Markdown pour Lokus, avec résumé, avis critique et transcription horodatée cliquable.
installation · Claude Code
- claude plugin marketplace add bendevcat/yt-lokus
- claude plugin install yt-lokus@yt-lokus-marketplace
Indiquez ensuite la racine de vos notes dans la variable YT_LOKUS_NOTES de ~/.claude/settings.json
Ce que fait ce skill
- Résumé dans votre langue, quelle que soit celle de la vidéo, avec des horodatages cliquables
- Avis critique : ce qui tient, ce qui se discute, ce que ça change pour vous
- Transcription découpée en paragraphes horodatés, avec les chapitres et les changements de voix
- Tags thématiques qui relient la note aux autres dans le graphe de Lokus
- Avant de rendre la note, un contrôle vérifie que chaque horodatage cité existe dans la transcription
fichiers · 10647e4
{
"name": "yt-lokus",
"description": "Turns a YouTube video into a Markdown note for Lokus: metadata, summary, critical review and a clickable timestamped transcript.",
"version": "0.2.0",
"author": {
"name": "bendevcat"
},
"homepage": "https://github.com/bendevcat/yt-lokus",
"license": "MIT",
"keywords": [
"youtube",
"transcript",
"transcription",
"lokus",
"notes",
"yt-dlp"#!/usr/bin/env python3
"""Tools for Lokus notes.
lokus_tools.py find <video_id> <root> notes that already mention this video
lokus_tools.py tags <root> tags in use, most frequent first
lokus_tools.py check <note.md> checks a finished note (exit 1 on error)
French and English notes are both understood.
"""
import collections
import os
import re
import sys
from pathlib import Path
TRANSCRIPT_HEADING = re.compile(r"^## (?:Transcription|Transcript)$", re.MULTILINE)#!/usr/bin/env python3
"""Turns YouTube subtitles fetched by yt-dlp into a Markdown note for Lokus.
to_lokus.py <video.info.json> <video.LANG.json3> <output_dir> [note_lang]
Both files come from yt-dlp (--write-info-json --write-subs --write-auto-subs
--sub-format json3). note_lang sets the language of the note's labels: `fr` or
`en` (default), any other value falls back to English.
Writes <output_dir>/<title>.md and prints its path. An existing file is never
overwritten (suffix -2, -3…). The summary and review sections hold the markers
<!-- RESUME --> and <!-- AVIS -->, which Claude then replaces.
"""
import json
import re
import sys---
name: yt-lokus
description: Transcribes a YouTube video and saves it as a formatted Markdown note (metadata, summary, critical review, clickable timestamped transcript) in a Lokus notes folder. Use whenever the user gives a YouTube link and asks for a transcript, to "transcribe" it, to "save it to Lokus" (« l'enregistrer dans Lokus »), to summarize a video to keep it (« résumer une vidéo pour la garder »), or types /yt-lokus <url>. Free, via yt-dlp.
---
# YouTube → Lokus
Fetches the YouTube subtitles, formats them with `scripts/to_lokus.py`, then adds
a summary and a review. `scripts/lokus_tools.py` handles the checks.
Paths and values used below:
- `<skill>`: this skill's folder, given when it is loaded;
- `<notes>`: the root of the Lokus notes, read from the `YT_LOKUS_NOTES` variable.
Empty variable → ask the user for the path, and offer to set it in the `env`
block of `~/.claude/settings.json`;
- `<output>`: `<notes>/yt-transcribe`. The folder is created if it does not exist;En détail
Vous donnez un lien YouTube à Claude, il range une note Markdown dans votre dossier
Lokus.
Pas de clé d’API ni de service payant :
les sous-titres viennent de YouTube, via yt-dlp.
Ce qu’il y a dans la note
La transcription est découpée en paragraphes d’environ une minute, et chaque
horodatage ouvre la vidéo au bon moment.
Au-dessus, un résumé et un avis
critique, dans votre langue : les contradictions, ce qui est affirmé sans preuve, l’intérêt de l’auteur
quand la vidéo vend quelque chose.
Une bonne vidéo a le droit d’être bonne, l’avis n’invente pas de défauts.
Avant de l’installer
Il vous faut yt-dlp (brew install yt-dlp ou pipx install yt-dlp) et Python 3.9
ou plus récent.
Le plugin ne fait pas de reconnaissance vocale : une vidéo sans aucun
sous-titre ne peut pas être transcrite.
Les notes sont écrites pour Lokus, sans
frontmatter. Leur langue suit celle que vous utilisez avec Claude, ou la variable
YT_LOKUS_LANG.