메뉴
HN
Hacker News • 1일 전

오퍼스 5.5, 설명 영상 제작에 탁월해

IMP
6/10
핵심 요약

Claude Opus 5.5를 활용해 URL이나 프롬프트 하나만으로 편집 없는 MP4 설명 영상을 한 번의 실행으로 생성하는 도구가 공개되었습니다. 서버리스 에이전트가 웹페이지를 읽고 HTML로 영상을 '코드로 작성'한 뒤, 가상 시계 기반의 결정론적 렌더링으로 매번 동일한 결과를 출력하는 것이 핵심입니다. 비디오 생성 모델 없이 코드 렌더링 방식만으로 재현 가능한 영상을 만든다는 점이 주목할 만합니다.

번역된 본문

URL이나 프롬프트를 입력하면 MP4가 출력됩니다. 각 결과는 단 한 번의 실행으로 만들어졌으며, 어떤 편집도 없습니다. 이 페이지에서 그대로 제작되었습니다.

작동 방식: OpenComputer 위에서 동작하는 서버리스 에이전트입니다. 원클릭으로 사용할 수 있습니다. 제품 전체가 에이전트 파일 하나, 세 가지 도구, 그리고 이 폼으로 구성됩니다. OpenComputer가 에이전트, 렌더링에 사용되는 microVM, 모델 게이트웨이, 페이지가 폴링하는 세션 API를 실행합니다.

에이전트: OpenComputer 서버리스 에이전트로, TypeScript로 정의되고 opencomputer deploy로 배포됩니다. 프레임워크도, 큐도, 자체 서버도 없습니다.

모델: OpenComputer의 모델 게이트웨이를 거치는 anthropic/claude-opus-5.5입니다. 영상 하나당 대략 입력 9만 토큰, 출력 1.5만 토큰이 사용되며, 대부분은 HTML 자체입니다.

런타임: 각 작업은 새로운 microVM에서 하나의 세션으로 실행됩니다. Amazon Linux 2023, arm64, 4 vCPU, 8GB RAM, Node 22 환경입니다. 첫 번째 도구 호출에서 Playwright의 헤드리스 Chromium과 정적 ffmpeg를 설치하며(약 1분 소요), 작업 후 VM은 폐기됩니다.

도구: 세 개의 defineTool 함수입니다. web_fetch는 페이지 텍스트와 제목, 헤딩, 가장 많이 쓰인 hex 색상, Google Fonts를 반환합니다. check_scene은 필름을 로드해 JS 오류와 샘플 타임스탬프별 표시 텍스트를 보고합니다. render_video는 렌더링과 업로드를 수행합니다.

렌더링: 비디오 모델은 사용하지 않습니다. 페이지의 시계(requestAnimationFrame, 타이머, Date, CSS 및 Web Animations)를 가상 시계로 교체해 모든 프레임이 결정론적으로 시킹됩니다. 1920x1080, 30fps로 JPEG 프레임을 libx264로 파이프 처리하며 crf는 18입니다.

저장소: 에이전트는 어떤 시크릿도 갖지 않습니다. 폼은 하나의 경로에 3시간 동안 유효한 Vercel Blob 업로드 토큰을 발급해 작업별 매니페스트에 넣고, 도구가 작업 ID로 이를 가져옵니다. 완성된 MP4는 공개 Blob URL이 됩니다.

제어 평면: 이 페이지는 CLI와 동일한 API를 사용합니다. 세션을 생성하고, 한 턴을 보내고, 이벤트 스트림(tool.started, tool.completed, turn.completed)을 폴링해 진행 상황을 표시하며, MP4가 Blob에 나타나면 완료로 간주합니다.

// opencomputer/agents/director/agent.ts import { useInput, useModel, useTool } from "@opencomputer/agent"; import { checkScene, renderVideo } from "./tools/scene.js"; import { webFetch } from "./tools/web.js";

export default function Agent() { const input = useInput(); // 폼에서 온 JOB 블록 useModel("anthropic/claude-opus-5.5"); useTool(webFetch); // 제품 사이트 읽기 useTool(checkScene); // HTML 로드, 오류 + 표시 텍스트 보고 useTool(renderVideo); // 헤드리스 Chromium → ffmpeg → Blob return You are a motion designer who writes code. ...; }

이 에이전트 배포하기: 원클릭입니다. 무료 계정이면 에이전트가 도구와 프롬프트와 함께 프로젝트에 설치됩니다. diggerhq/shipvideo 저장소를 클론하면 에이전트, 렌더러, 이 웹 앱이 모두 포함되어 있습니다.

나만의 에이전트 만들기: 퀵스타트는 TypeScript 파일 하나, 배포 한 번, 세션 하나면 됩니다. 10분이면 충분합니다.

$ npx opencomputer template deploy https://github.com/diggerhq/shipvideo 복사

위의 모든 내용은 저장소에 있으며, 원클릭으로 자신의 계정에 배포할 수 있습니다. 이 아이디어는 Opus 5.5와 교육 영상에 관한 Deedy의 글에서 왔습니다. 즉, 모델이 필름을 코드로 작성하고, 코드는 매번 동일하게 렌더링된다는 것입니다.

원문 보기
원문 보기 (영어)
URL Prompt choose one try an example Ship it examples Made by this page, untouched. Each one is a single run: a URL or a prompt in, an MP4 out. No edits. use this input → use this input → use this input → use this input → use this input → how it runs A serverless agent on OpenComputer. Yours in one click. The whole product is one agent file, three tools, and this form. OpenComputer runs the agent, the microVM it renders in, the model gateway, and the session API the page polls. Agent One OpenComputer serverless agent, defined in TypeScript and deployed with opencomputer deploy . No framework, no queue, no server of ours. Model anthropic/claude-opus-5.5 through OpenComputer's model gateway. Roughly 90k input and 15k output tokens per film, most of it the HTML itself. Runtime Every job is one session in a fresh microVM: Amazon Linux 2023 on arm64, 4 vCPU, 8 GB RAM, Node 22. The first tool call installs Playwright's headless Chromium and a static ffmpeg (about a minute); the VM is thrown away after. Tools Three defineTool functions. web_fetch returns page text plus title, headings, the most used hex colors, and Google Fonts. check_scene loads the film and reports JS errors and the visible text at sample timestamps. render_video renders and uploads. Rendering No video model. The page's clocks (requestAnimationFrame, timers, Date, CSS and Web Animations) are replaced with a virtual clock, so every frame is a deterministic seek. 1920x1080 at 30 fps, JPEG frames piped into libx264, crf 18. Storage The agent holds no secrets. The form mints a Vercel Blob upload token scoped to one path for three hours, parks it in a per-job manifest, and the tool fetches it by job id. The finished MP4 is a public Blob URL. Control plane This page uses the same API the CLI does: create a session, send one turn, poll the event stream (tool.started, tool.completed, turn.completed) to show progress, and treat the MP4 appearing in Blob as done. // opencomputer/agents/director/agent.ts import { useInput, useModel, useTool } from "@opencomputer/agent"; import { checkScene, renderVideo } from "./tools/scene.js"; import { webFetch } from "./tools/web.js"; export default function Agent() { const input = useInput(); // the JOB block from the form useModel("anthropic/claude-opus-5.5"); useTool(webFetch); // read the product's site useTool(checkScene); // load the HTML, report errors + visible text useTool(renderVideo); // headless Chromium → ffmpeg → Blob return `You are a motion designer who writes code. ...`; } Deploy this agent One click. Free account, the agent lands in your project with its tools and prompt. Clone the repo diggerhq/shipvideo: the agent, the renderer, and this web app. Build your own agent The quickstart: a TypeScript file, a deploy, a session. Ten minutes. $ npx opencomputer template deploy https://github.com/diggerhq/shipvideo copy Everything above is in the repo, and one click deploys it to your account . The idea comes from Deedy's post on Opus 5.5 and instructional video: the model writes the film as code, and code renders the same every time.