black-mirror
BY @30WONTJAM — 24 DOWNLOADS — OTHER
"Create real-footage archive video edits in the Black Mirror local style: Internet Archive/public-domain clip hunting, random fire archival source selection, fast chops, split-screen/multi-panel collage, mirrored/negative/edge panels, monochrome CRT/tape grade, and no-AI-looking motion. Use when the user asks for Black Mirror edits, archive-sourced videos, split-screen archival chaos, non-AI video collages, random Internet Archive clip edits, or videos like the Telegram split-screen/no-red cut."
CLI INSTALL
curl -sS https://dem0n.vip/s/30wontjam/black-mirror/SKILL.md -o ~/.claude/skills/black-mirror/SKILL.md --create-dirs
DOWNLOAD ALL gives you a single .zip containing SKILL.md + the tar.gz — drag it into Claude Code in one go.
Sign up to see the full skill
Get the source, install command, comments, and version history
GET AN INVITEBlack Mirror
Black Mirror is a local edit system for making chaotic real-footage archive videos: public-domain or cleared archival clips, fast documentary chops, split-screen panels, monochrome tape texture, and no AI scene generation unless the user explicitly asks.
This is not a request to imitate the TV show. Treat "Black Mirror" as the user's name for this archive-sourced split-screen tape-edit language.
Core Taste
- Source real footage first: Internet Archive, public-domain films, user clips, government films, home movies, VHS transfers, newsreels, old commercials, educational films, industrial films, travel footage, weird demonstrations, sports, rituals, nightlife, street footage, animals, machines, crowds, labs, kitchens, anything visually alive.
- Prefer randomness with taste. Do not stay locked to industrial footage; use industrial only when it is the strongest source.
- Make chaos through editing and layout, not seizure flashes.
- Keep the footage photographic. Real camera imperfections, grain, exposure rolloff, motion blur, awkward framing, tape damage, and old compression are the point.
- Default palette when no style is specified:
classic_crt, a black/white green-cyan CRT tint with vignette, scanlines, grain, and controlled contrast. Do not overuse it; choose or combine modes when repeated renders start feeling samey. - Avoid red marks by default. Use no red lines, no red boxes, and no red scars unless the user asks for red.
- Avoid AI tells: smooth synthetic subjects, fake faces/hands, over-polished camera moves, fantasy scene continuity, glossy generated lighting.
Workflow
- Gather context: ask for a theme only if the user has one. Otherwise choose a loose search cloud such as
night city,public access,home movies,science,fashion,sports,industrial,travel,newsreel,shopping mall,machines,ritual,ocean, orcrowd. - Search Internet Archive with
scripts/ia_find_video.pyor directadvancedsearch.phpcalls. Prefer public-domain/CC items and always inspect metadata before using. - Download 1-3 promising videos. Do not download huge files blindly; prefer usable MP4/H.264 derivatives under a few hundred MB for iteration.
- Generate contact sheets and scout for fire frames before editing.
- Cut short source segments, usually 0.4-0.85s each for chaotic edits or 1-3s each for moodier edits.
- Render the split-screen edit with
scripts/black_mirror_split_edit.pyor a custom ffmpeg graph. - QC with a dense contact sheet. The result should look like real footage seen through a cursed multi-monitor tape wall.
- Open the final MP4 and provide the path plus source URLs/licenses.
Internet Archive Discovery
Use the helper to search and optionally download candidates:
python3 ~/.codex/skills/black-mirror/scripts/ia_find_video.py \
--query 'collection:prelinger AND (home movies OR fashion OR science OR city)' \
--limit 20 \
--download \
--out-dir ./black_mirror_sources
Good source veins and query ideas live in references/archive-veins.md; read it when searches feel too samey.
License discipline:
- Prefer items marked public domain, CC0, Creative Commons, government/public access, or known reuse-friendly collections.
- Do not assume every Internet Archive item is cleared just because it is downloadable.
- Save or cite the item URL and visible license/rights field in the final response when delivering a finished edit.
Split-Screen Edit
Use the bundled renderer for the Telegram-style split-screen chaos:
python3 ~/.codex/skills/black-mirror/scripts/black_mirror_split_edit.py \
--input ./source.mp4 \
--output ./black_mirror_split.mp4 \
--duration 16 \
--seed 444
For multiple sources:
python3 ~/.codex/skills/black-mirror/scripts/black_mirror_split_edit.py \
--input ./source_a.mp4 \
--input ./source_b.mp4 \
--input ./source_c.mp4 \
--output ./black_mirror_mash.mp4 \
--duration 18 \
--seed 777
The renderer builds micro-segments through a layout/cut engine layer. If no layout engine is specified, it uses random_mix, which chooses from the full cut-engine pool per segment. Use --seed only when you want repeatability; otherwise the renderer generates a fresh seed so the structure does not keep repeating.
Layout / Cut Engines
The renderer supports 50+ layout/cut engines. List them with:
python3 ~/.codex/skills/black-mirror/scripts/black_mirror_split_edit.py --list-layout-engines
Use --layout-engine or --cut-engine to pick the structural edit language. Combine engines with + or commas:
python3 ~/.codex/skills/black-mirror/scripts/black_mirror_split_edit.py \
--input ./source_a.mp4 \
--input ./source_b.mp4 \
--output ./black_mirror_switcher.mp4 \
--duration 18 \
--style raw_archive+grain_light \
--layout-engine surveillance_bank+postage_pile+filmstrip_crawl
Use --layout-engine random5 for a deterministic five-engine subset based on --seed, or omit --seed for a fresh surprise each render.
Useful starting points:
- Maximum variety:
random_mix,shuffle_wall,off_air_switcher,channel_zap. - Dense walls:
surveillance_bank,contact_sheet,arcade_grid,crowd_wall,casino_cameras. - PIP/overlays:
picture_in_picture,postage_pile,mirror_tunnel,mainframe,neon_pips. - Strips/bands:
vertical_panic,horizontal_broadcast,filmstrip_crawl,ladder_scan,terminal_columns. - Slower moods:
city_planner,ocean_monitor,travelog_slide,courtroom_feed,classroom_projector. - Old exact behavior:
legacy_loop.
Style Modes
The renderer supports 50+ finishing modes and accents. List them with:
python3 ~/.codex/skills/black-mirror/scripts/black_mirror_split_edit.py --list-styles
Use --style or --mode to pick a finishing grade. Combine modes with + or commas:
python3 ~/.codex/skills/black-mirror/scripts/black_mirror_split_edit.py \
--input ./source_a.mp4 \
--input ./source_b.mp4 \
--output ./black_mirror_color_wall.mp4 \
--duration 18 \
--seed 777 \
--style raw_archive+scanline_light+grain_heavy
Use --style random3 for a deterministic three-mode surprise based on --seed.
Use a contact sheet or source scout image to pick a base grade automatically, then add accents:
python3 ~/.codex/skills/black-mirror/scripts/black_mirror_split_edit.py \
--input ./source_a.mp4 \
--input ./source_b.mp4 \
--output ./black_mirror_auto_wall.mp4 \
--duration 18 \
--seed 777 \
--auto-style-from ./qc/source_contact.jpg \
--style grain_light
Useful starting points:
- Color-preserving:
raw_archive,public_access,soft_vhs,color_bleed_vhs,shopping_channel,neon_preserve,field_recorder. - Cold surveillance:
cold_cctv,airport_security,off_air_blue,wet_pavement,payphone_glow. - Monochrome:
classic_crt,newsprint,xerox,silver_halide,archive_news,darkroom_print. - Warm film:
sixteen_mm_warm,eight_mm_home,sun_faded,desert_broadcast. - Combinable accents:
scanline_light,scanline_heavy,grain_light,grain_heavy,vignette_soft,vignette_deep,contrast_punch,soft_blur.
Manual Ffmpeg Notes
If writing a custom graph:
- Use
trim,setpts,scale,setsar=1,crop,hflip,negate,edgedetect,xstack,hstack,vstack, andoverlay. - Normalize every panel before concatenating: same dimensions, same frame rate, square pixels.
- Offset panels in time so one frame contains multiple moments from the same source.
- Map or reconstruct original source audio where possible; filtered archive narration and room tone help the edit feel real.
- Add texture with
eq,noise,drawgrid, andvignette; avoid full-frame flashing unless the user asks.
QC
- Make a dense contact sheet:
ffmpeg -y -hide_banner -loglevel error -i ./black_mirror_split.mp4 \
-vf "fps=2,scale=240:-1,tile=8x4" -frames:v 1 ./contact.jpg
- The contact sheet should show varied panel layouts, real photographic detail, and strong frames.
- If it looks like a random grid, use fewer sources and stronger time offsets.
- If it looks too calm, shorten segment durations and add more split layouts.
- If it looks too seizure-heavy, reduce negative/edge panels and avoid white flash bars.
- If it looks AI, discard AI sources and return to real archive footage.
BADGE

VERSIONS
- 0.0.1777017149323 — 19.9 KB — 3e0924fd45d6
COMMENTS (3)
LOGIN TO COMMENT