Blind 75 Study Skill
Interactive workflow for studying Blind 75 videos with articles.
Video Sources
- •NeetCode - Primary source, Blind 75 playlist order
- •Kevin Naughton Jr. - Supplementary explanations, different teaching style
Commands
Blind 75 Progress (legacy)
bash
python scripts/study.py show <n> # Show video info python scripts/study.py next # Next unwatched python scripts/study.py mark <n> # Mark watched
Multi-Source Tracking (new)
bash
python scripts/track.py watch <source> <youtube_id> "<problem>" # Mark watched python scripts/track.py status # Progress by source python scripts/track.py queue # View study queue python scripts/track.py queue add "<problem>" <lc_num> "<reason>" python scripts/track.py queue done "<problem>"
Open Videos/Articles
IMPORTANT: Always use FULL ABSOLUTE PATHS for glow and kitty. Do NOT omit the path — the command will silently fail.
bash
open -a mpv "<video_path>" /Applications/kitty.app/Contents/MacOS/kitty --single-instance -e bash -c '~/go/bin/glow -p "<article_path>"' & grep "^#" "<article_path>" # Preview headers
WRONG (will fail silently):
bash
kitty --single-instance glow article.md # NO — kitty not in PATH kitty --single-instance -e glow article.md # NO — glow not in PATH /Applications/kitty.app/Contents/MacOS/kitty --single-instance glow article.md # NO — glow not in PATH
Search Local Playlists
bash
grep -i "<keyword>" playlists/youtube_kevin_naughton_leetcode.jsonl grep -i "<keyword>" playlists/youtube_neetcode_blind75.jsonl grep -iE "<pattern>" playlists/*.jsonl # Search all
Workflow
When user says "study", "next video", or uses /study:
- •Run
python scripts/study.py nextto show next unwatched (NeetCode) - •If article shows "Not found", search manually:
bash
ls neetcode/articles/ | grep -i "<keyword>"
- •Search for Kevin Naughton video on same topic:
bash
grep -i "<problem-name>" playlists/youtube_kevin_naughton_leetcode.jsonl
- •Preview article headers with
grep "^#" <article_path> - •Open the article in kitty with glow (first, so it's behind)
- •Open NeetCode video in mpv
- •After NeetCode video, open Kevin Naughton video if available
- •When done:
- •Legacy:
python scripts/study.py mark <n> - •Multi-source:
python scripts/track.py watch <source> <youtube_id> "<problem>"
- •Legacy:
- •Run
python scripts/progress_report.pyfor Blind 75 progress
Video Paths
- •NeetCode:
videos/neetcode-blind75/ - •Kevin Naughton:
videos/kevin-naughton/
Progress Files
- •
progress/watched_by_id.jsonl- Primary - Deduplicated tracking by youtube_id (cross-playlist) - •
progress/watched.jsonl- Legacy Blind 75 tracking (by playlist index, kept for backwards compat) - •
study_queue.jsonl- Bookmarked problems to study
Marking Videos Watched
When marking a video watched, add to BOTH files for backwards compatibility:
python
# watched_by_id.jsonl (primary, deduplicated)
{"youtube_id": "ABC123", "date": "2026-02-03", "source_playlist": "youtube_neetcode_blind75", "source_index": 34}
# watched.jsonl (legacy)
{"playlist": "youtube_neetcode_blind75", "index": 34, "date": "2026-02-03"}
The youtube_id can be found in the video filename: 034 - Title [ABC123].mp4 or from the playlist JSONL.
Example Session
code
User: "next video" / "study" -> Show video info -> Search for Kevin Naughton version -> Open article in kitty (behind) -> Open NeetCode video in mpv -> After watching, open Kevin's video User: "done with kevin frog jump" -> python scripts/track.py watch kevin 4LvYp_d6Ydg "Frog Jump" User: "done" / "mark watched" -> Mark video as watched -> Show progress report User: "show queue" -> python scripts/track.py queue