Skip to content
Video & Audio
Skill

/archive-broll

Find, preview, cut and credit archival B-roll from the Internet Archive (archive.org) for a Helios video — public-domain, CC BY and CC BY-SA film plus Prelinger Archives. Use when a Helios composition needs real footage as a plate, cutaway, masked fill or texture. Not for

From plugin
helios
13035 skills1 MCP

Claude Code

$ npx -y skills add BintzGavin/helios --skill archive-broll --agent claude-code

SKILL.md

archive-broll.SKILL.md
name: archive-broll
description: Find, preview, cut and credit archival B-roll from the Internet Archive (archive.org) for a Helios video — public-domain, CC BY and CC BY-SA film plus Prelinger Archives. Use when a Helios composition needs real footage as a plate, cutaway, masked fill or texture. Not for generating footage or editing the user's own camera video.

Archive B-roll

The [Internet Archive](https://archive.org/developers/) holds millions of films: Prelinger Archives (industrial, educational, advertising), NASA, newsreels, home movies and Creative Commons uploads. No API key is needed. [`scripts/archive-broll.mjs`](scripts/archive-broll.mjs) (Node 18+, ffmpeg for `clip`) wraps three endpoints:

| Command | Endpoint | Does | |---|---|---| | `search` | `advancedsearch.php` | Lists movie items with reusable rights | | `inspect` | `metadata/<id>` | Picks the best MP4, saves thumbnails named by second offset | | `clip` | `download/<id>/<file>` | Cuts only the seconds you need over HTTP, writes credits |

1. Search

node <this-skill>/scripts/archive-broll.mjs search "factory assembly line" --rows 12
node <this-skill>/scripts/archive-broll.mjs search "city traffic" --collection prelinger --years 1945-1965
node <this-skill>/scripts/archive-broll.mjs search 'title:(rocket launch)' --collection nasa --json

Terms use Archive search syntax (`title:(...)`, `subject:(...)`, `AND`, `OR`); results are ranked by relevance (`--sort downloads` for popularity). Every result carries a rights label:

| Label | Meaning | |---|---| | `public-domain` | Public-domain mark or CC0. Credit anyway. | | `cc-by` | Credit required. | | `cc-by-sa` | Credit required, and the finished video must use the same license. Tell the user before using it in a commercial video. | | `collection-policy` | No item license; the collection publishes a rights statement (Prelinger Archives). Credit the collection and link the statement. |

Non-commercial, no-derivatives and unknown-rights items are left out. `--include-unknown` shows unknown items; use one only after the user confirms they hold the rights. Labels come from uploader metadata: they're a filter, not legal advice. Flag anything that looks like a commercial film, TV show or trademark-heavy footage even when it's labelled public domain.

2. Preview

node <this-skill>/scripts/archive-broll.mjs inspect <identifier> --out videos/<slug>/broll --thumbs 16

Writes `item.json` and thumbnails named by offset (`00450s.jpg` = 7:30 in). Open them with your image tool and pick start times. `--large` grabs sharper 640 px frames with ffmpeg when the archive's 160 px thumbnails aren't enough.

3. Cut

node <this-skill>/scripts/archive-broll.mjs clip <identifier> --start 450 --duration 3 \
  --out videos/<slug>/broll --name traffic-01.mp4

Output is H.264, no audio (`--audio` keeps it), short keyframe interval so per-frame seeking stays cheap; `--width 1920` upscales. Cut about 0.5 s extra on each side for transitions. Each clip appends to `CREDITS.md` and `credits.json` in the output folder.

4. Use in the page

The renderer seeks every `<video>` to `(t - data-helios-offset) + data-helios-seek` before each frame and waits for it.

DOM page: place it and style it.

<video id="plate" src="broll/traffic-01.mp4" muted playsinline preload="auto"
       data-helios-offset="4.0" data-helios-seek="0.5"></video>

Canvas page: keep the same hidden `<video>` (`style="display:none"`), and wait for its seek inside `renderAt` before drawing:

const plate = document.getElementById('plate');
const settled = (v) => (v.seeking || v.readyState < 2)
  ? new Promise((r) => { v.addEventListener('seeked', r, { once: true }); v.addEventListener('canplay', r, { once: true }); })
  : null;

window.renderAt = async (t) => {
  await ready;
  if (t >= 4.0) { await settled(plate); ctx.drawImage(plate, 0, 0, W, H); }
  // ...
};

Make the footage belong to the look: grade it with an SVG colour matrix, `mix-blend-mode`, or by drawing it into the style's plates (duotone, halftone, ink density). Most archive film is 4:3 SD from the 1940s–70s: masks, frames and collage suit it better than full-bleed. Check a sheet to confirm the clip moves between frames.

5. Credit

Keep `CREDITS.md` with the video, and put credits in the end card, description or project docs as the license requires (always for CC BY and CC BY-SA). List the clips and their rights when you hand over.

Read more
@bintzgavin
Ships withhelios

Programmatic video creation with web technologies you already know. CSS animations just work.

13035 skills1 MCP
Get the whole plugin

Stars on GitHub

Momentum

stars in total
130
Star history of BintzGavin/helios on GitHub, a chart by star-history.com

Other skills on helios.

make-video

make-video

Make videos drawn with code: motion graphics, launch and explainer videos, animated shorts, animated charts and data, logo…

@bintzgavin@bintzgavinInstall Skill
core

core

Core API for Helios video engine. Use when creating compositions, managing timeline state, controlling playback, or subscribing…

@bintzgavin@bintzgavinInstall Skill
animated-video-philosophy

animated-video-philoso…

Story-first motion design philosophy for animated video: motion must earn its place; arc (establish, complicate, resolve); show…

@bintzgavin@bintzgavinInstall Skill
motion-styles

motion-styles

Opt-in library of established visual styles for code-drawn Helios videos: style cards (colour rules, type, motion grammar, a…

@bintzgavin@bintzgavinInstall Skill
canvas

canvas

Patterns for using Helios with Vanilla Canvas API. Use when building high-performance 2D/3D animations without frameworks.

@bintzgavin@bintzgavinInstall Skill

More skills from other plugins.

captions-overlay

captions-overlay

Overlay doctrine for captions in HyperFrames videos — the caption MODEL (drop / rail / embed) and the rule that captions are an…

@heygen-com@heygen-comInstall Skill
acestep

acestep

AI music generation with ACE-Step 1.5 — background music, vocal tracks, covers, stem extraction for video production. Use when…

@calesthio@calesthioInstall Skill
seedance-antislop

seedance-antislop

This skill should be used when a Seedance 2.0 prompt contains generic AI filler, hollow superlatives, vague cinematic language,…

@emily2040@emily2040Install Skill

Questions about archive-broll.

Which coding agents can use archive-broll?
archive-broll installs in Claude Code, Codex, Cursor, Gemini CLI, GitHub Copilot, OpenCode and Windsurf with the skills CLI, using each agent's flag shown on this page. Flowy's auto-invocation, which fires a skill when your prompt matches, runs in Claude Code only.