skip to content
carldmitchell.com
← all projects

server-tools

Claude Code skills that run on both my desktop and the home server, starting with a YouTube-to-searchable-transcript indexer that now holds 470+ videos.

details

status
in progress
group
ai tooling
stack
Python, Bash, yt-dlp, Whisper, Claude Code (headless), systemd and launchd
since
2026-09

readme

Some of my AI tools need to run on the Mac mini as well as my desktop, because a button on a web page has to be able to start them. This repo is the home for those: one self-contained folder per skill, linked into Claude Code on whichever machine it's installed on.

The skills

SkillWhat it does
ytindexTurns a YouTube video into a searchable, timestamped transcript plus its metadata and comments. Questions about the video are answered with links straight to the right moment (&t=). Uses captions when a video has them, and local Whisper when it doesn't.
vidblogThe worker behind the ๐Ÿ“ button on home. It indexes a queued video, has Claude write a readable post from the transcript, and files it back to the page.

Design choices

  • Claude runs headless with no tools at all for vidblog. The transcript goes in on stdin, and the post comes back as JSON checked against a schema. The model can't touch the machine, and a stray quote can't break the output.
  • Data never goes in the repo. Each skill keeps its data in a folder beside the checkout, so the server's auto-deploy always sees a clean working tree.
  • One worker at a time with a lock that can't go stale: a lock older than the longest possible run is cleared. The page rebuild every 15 minutes restarts any job a reboot interrupted.
  • Data flows back nightly. A timer copies videos indexed on the server into my desktop's library, adding only, never deleting.