Nogen i Brasilien klippede et 15-sekunders klip 12 minutter siden

201441 klip er blevet klippet med AppsGolem.

Udvikler-API · MCP-server

Klip YouTube-klip fra din kode.

Et enkelt REST API og en MCP-server til AI-agenter — alt det, webklipperen kan, programmatisk. Forudbetalte kreditter, intet abonnement.

API + MCP til kodeagenter →

# one clip = 1 credit — failed cuts never billed
curl -X POST https://appsgolem.com/v1/cuts \
  -H "Authorization: Bearer ag_live_…" \
  -d '{"url":"youtu.be/…","start":"0:00",
       "end":"0:10","mode":"video"}'
Sådan fungerer det

Ny her? Hele modellen på et minut.

Du køber forudbetalte credits, opretter en API-nøgle og kalder ét endpoint for at klippe et klip. Klipning er asynkron: du indsender et job, poller indtil det er produceret, og downloader derefter filen fra en tokeniseret URL. MCP-serveren pakker det hele ind i ét enkelt tool-kald for AI-agenter. Intet abonnement, ingen seats — du betaler pr. produceret klip.

1 · Autentificer
Send din nøgle som Authorization: Bearer ag_live_… med hver anmodning.
2 · Indsend & poll
POST /v1/cuts returnerer et job-id; poll GET /v1/cuts/{id}, indtil det er produceret.
3 · Download
Hent download_url fra det producerede job — ingen header nødvendig, token'et autoriserer den.
Hurtig start

Fra nul til et klip på fire kald.

01
Opret en API-nøgle
Buy a credit pack (from €5), then generate a key in your dashboard. Keys look like ag_live_… and are shown once — store it somewhere safe.
02
Indsend et klip
curl -X POST https://appsgolem.com/v1/cuts \
  -H "Authorization: Bearer ag_live_…" \
  -H "Content-Type: application/json" \
  -d '{"url":"https://youtu.be/aqz-KE-bpKQ",
       "start":"0:00","end":"0:10",
       "resolution":"1080p","mode":"video"}'
202 Accepted
{ "id": "e48d…b1a2", "state": "queued", "credits_reserved": 1, "poll_url": "/v1/cuts/e48d…b1a2" }
03
Poll efter download-URL'en
# GET /v1/cuts/{id} — repeat every few seconds until state is produced
{ "state": "produced",
  "download_url": "/v1/download/…/clip.mp4" }
Status bevæger sig accepted → queued → produced → delivered (eller failed → refunded). Et kort klip er som regel klart på få sekunder; poll hvert 3–5 s.
Downloadlinks udløber 72 timer efter, at klippet er produceret — hent det inden for dette tidsrum.
04
Download klippet
Den tokeniserede URL streamer MP4-filen — genanvendelig, indtil den udløber. MCP-værktøjet cut_youtube_video klarer trin 2–4 for dig i ét kald.
Til AI-agenter · MCP

Én linje til Claude, Cursor & Codex.

MCP-serveren eksponerer klipperen som tre værktøjer, som enhver MCP-klient kan kalde. Installer med npx — intet at installere globalt.

Claude Desktop — claude_desktop_config.json
{ "mcpServers": {
  "appsgolem": {
    "command": "npx",
    "args": ["-y","appsgolem-mcp"],
    "env": { "APPSGOLEM_API_KEY":
      "ag_live_…" } } } }
Claude Code
claude mcp add appsgolem \
  -e APPSGOLEM_API_KEY=ag_live_… \
  -- npx -y appsgolem-mcp
Codex CLI — ~/.codex/config.toml
[mcp_servers.appsgolem]
command = "npx"
args = ["-y", "appsgolem-mcp"]
env = { APPSGOLEM_API_KEY = "ag_live_…" }
cut_youtube_video()
Indsend et klip (enhver tilstand, indstillinger eller et clips-array) og få en download-URL tilbage.
get_cut_status()
Tjek et job ud fra dets id, og hent dets download-URL.
get_account_balance()
Dine tilgængelige kreditter og timeloft.
Hvad du kan sige til din agent — alle funktioner
“Klip en video fra 0:30 til 1:15 i 1080p”
cut_youtube_video(url, start="0:30", end="1:15", resolution="1080p")
“Hent lyden fra videoen fra 2:00–5:00 som en 320 kbps MP3”
cut_youtube_video(…, mode="audio_only", audio_format="mp3", bitrate="320")
“Eksportér videoen og en MP3 af de første 30 sekunder”
cut_youtube_video(…, end="0:30", mode="both")
“Lav en lodret 9:16-short af highlightet fra 10:00–10:45”
cut_youtube_video(…, start="10:00", end="10:45", mode="short")
“Lav 0:05–0:12 om til en GIF”
cut_youtube_video(…, mode="gif")
“Lav et contact sheet med et billede hvert 5. sekund fra 1:00–2:00”
cut_youtube_video(…, mode="frames", interval_ms=5000, sheet=true)
“Stitch 0:10–0:20 og 1:00–1:10 sammen til ét klip”
cut_youtube_video(url, clips=[…], stitch=true)
“Lav et fast, stream-copy-klip af de første 30 sekunder”
cut_youtube_video(…, end="0:30", fast=true)
“Klip 0:00–0:20 ved 1.5× hastighed, i 4K”
cut_youtube_video(…, speed=1.5, resolution="2160p")
“Hvor mange API-credits har jeg tilbage?”
get_account_balance()
“Tjek status på job e48d…b1a2”
get_cut_status(job_id="e48d…b1a2")
Agenten udfylder parametrene ud fra din anmodning — du skal ikke skrive JSON.
API-reference

Hvert endpoint, med eksempler.

Fire endpoints. De tre læse-/skriveendpoints kræver Authorization: Bearer <key>; download-URL'en autoriseres af sit eget token og behøver derfor ingen header.

POST /v1/cuts Bearer
Anmodning · video
{ "url": "https://youtu.be/aqz-KE-bpKQ",
  "start": "0:00", "end": "0:10",
  "resolution": "1080p", "mode": "video" }
Svar · 202 Accepted
{ "id": "e48db1a2-…", "state": "queued", "credits_reserved": 1, "poll_url": "/v1/cuts/e48db1a2-…" }
Angiv enten start+end eller et clips-array (1–10 vinduer). Tilføj en Idempotency-Key-header (≤200 tegn), så en gentaget anmodning genbruger samme job i stedet for at blive opkrævet to gange.
Anmodningsindhold pr. tilstand
audio_onlymp3 · m4a · wav · flac
{ "url":"youtu.be/…", "start":"2:00", "end":"5:00",
  "mode":"audio_only",
  "audio_format":"mp3", "bitrate":"320" }
bothMP4 + MP3, zippet
{ "url":"youtu.be/…", "start":"0:00", "end":"0:30",
  "mode":"both", "resolution":"1080p" }
short9:16 AI-smart-crop
{ "url":"youtu.be/…", "start":"10:00", "end":"10:45",
  "mode":"short" }
nosoundMP4, uden lyd
{ "url":"youtu.be/…", "start":"0:00", "end":"0:15",
  "mode":"nosound", "fast":true }
gif≤ 5 min., ét klip
{ "url":"youtu.be/…", "start":"0:05", "end":"0:12",
  "mode":"gif" }
framesJPG-stillbilleder · ≤ 1800
{ "url":"youtu.be/…", "start":"1:00", "end":"2:00",
  "mode":"frames", "interval_ms":5000,
  "sheet":true }
clips + stitch1–10 → én fil
{ "url":"youtu.be/…", "mode":"video",
  "clips":[{"start":"0:10","end":"0:20"},
          {"start":"1:00","end":"1:10"}],
  "stitch":true }
speed · 4K0.5–2× · 2160p
{ "url":"youtu.be/…", "start":"0:00", "end":"0:20",
  "mode":"video", "speed":1.5,
  "resolution":"2160p" }
GET /v1/cuts/{id} Bearer
Svar · 200 · produced
{ "id": "e48db1a2-…", "state": "produced", "credits_reserved": 1,
  "created_at": "2026-08-22T12:00:00+00:00",
  "download_url": "/v1/download/…/clip.mp4" }
state er en af accepted · queued · produced · delivered · failed · refunded. download_url vises, når et token er klar — hvis det mangler, så poll igen.
GET /v1/account Bearer
Svar · 200
{ "balance": 412, "hourly_cap": 60 }
GET /v1/download/{token}/{file} Token i URL
Svar · 200
# streams the file
Content-Type: video/mp4
Content-Disposition: attachment; filename="clip.mp4"
Ingen Bearer-header — token'et i stien autoriserer den. URL'en kan genbruges, indtil den udløber.
Fejl

Enhver fejl returnerer en JSON-body med en error-kode og HTTP-status. Prøv 429 igen efter retry_after sekunder; ret og send igen ved en 400.

402 insufficient_credits
{ "error":"insufficient_credits",
  "message":"need 2 credits", "balance":1 }
429 rate_limited
{ "error":"rate_limited",
  "retry_after":12 }
400 invalid_*
{ "error":"invalid_resolution",
  "message":"resolution must be…" }
401 · 404
{ "error":"invalid_api_key" }  // 401
{ "error":"not_found" }        // 404
Rate limit: Kun klipindsendelser er hastighedsbegrænsede — din plans indsendelser/time (se Priser). At tjekke et jobs fremskridt er ikke hastighedsbegrænset ved normal brug, så polling tæller aldrig med i den grænse. Overhold poll_after i hvert svar (og Retry-After ved det sjældne 429); MCP-værktøjet styrer timingen for dig med wait=true.
Funktioner

Alle de tilstande, webklipperen har.

MODE video
MP4 op til 4K
144p–2160p, 60fps, uden vandmærke.
MODE audio_only
Lyd
mp3 / m4a / wav / flac, valgfri bitrate.
MODE both
Video + lyd
MP4 og MP3 sammen, som en zip.
MODE nosound
Video uden lyd
Video uden lydspor.
MODE short
9:16 lodret
Smart AI-beskæring til Shorts, Reels og TikTok; falder tilbage til en letterbox-udtoning, når det ikke er tilgængeligt.
MODE gif
Animeret GIF
Op til 5 minutter, direkte fra et klip.
MODE frames
JPG-billeder
Hvert 100ms–10s, tidsstempler + kontaktark.
OPTION fast
Hurtig tilstand
Stream-kopiering, ca. 10× hurtigere; bevarer kildecontaineren (WebM ved 1440p/2160p).
OPTION speed
Hastighed 0.5–2×
Juster afspilningstempoet ved eksport.
OPTION clips
Sammensætning af flere klip
Op til 10 intervaller samlet i én fil.
Reference

Parametre

Felt
Type
Bemærkninger
url
string
YouTube watch / share / youtu.be URL.
start, end
string
"SS" / "MM:SS" / "HH:MM:SS" (≤ 300h). Udelad ved brug af clips.
resolution
enum
144p · 240p · 360p · 480p · 720p · 1080p · 1440p · 2160p (4K; samlet klip ≤ 60 min).
mode
enum
video · audio_only · both · nosound · short · gif · frames.
audio_format
enum
mp3 · m4a · wav · flac — kun til audio_only; both er altid MP3.
bitrate
enum
Tabsgivende bitrate 320 · 256 · 192 · 128 kbps — MP3/M4A (audio_only), MP3 (both); ignoreres for wav/flac.
fast
boolean
Stream-copy, ca. 10× hurtigere — kun video, nosound, both; tvinger hastighed til 1×.
speed
number
Afspilningshastighed 0.5 · 1 · 1.25 · 1.5 · 2 — video, nosound, both, audio_only.
interval_ms
integer
Billedudtagning: 100 · 500 · 1000 · 2000 · 5000 · 10000 ms; ≤ 1800 JPG'er i alt.
burn_ts
boolean
Billeder — brænder kildens tidsstempel ind på hvert JPG.
sheet
boolean
Billeder — ét enkelt kontaktark-JPG (ét enkelt klip); deaktiverer burn_ts.
clips
array
1–10 {start,end}-intervaller; sæt stitch for at samle dem i én fil.
stitch
boolean
Med clips samles de i én fil — video, audio_only, both, short, nosound.
Idempotency-Key
header
Sendes som en HTTP-header (≤ 200 tegn), ikke som et body-felt — gentagne forsøg genbruger samme job.
Endpoints: POST /v1/cuts · GET /v1/cuts/{id} · GET /v1/account — Bearer-godkendt.
GET /v1/download/{token}/{file} — Godkendt via URL-tokenet, ingen Bearer-header.
Priser

Betal for klip, ikke for brugere.

Forudbetalte kreditter driver AppsGolems cutter-API & MCP-server — ét produceret klip er én kredit, og mislykkede klip faktureres aldrig. Køb en pakke til lejlighedsvis brug, eller abonnér for et jævnt månedligt volumen og en højere rate limit.

№ 01  /  Forudbetalte pakker

Betal efter forbrug.

Engangskøb, ingen fornyelse. Kreditter er gyldige i 12 måneder.

Startpakke
€5 engangsbetaling

25 kreditter · ≈ 25 standardklip

Gyldig i 12 måneder

Kom i gang
PAYG-pakke Bedste værdi
€25 engangsbetaling

150 kreditter · ≈ 150 standardklip

Gyldig i 12 måneder · €0,17 / kredit

Kom i gang

№ 02  /  Abonnementer

Klip hver måned.

Kreditter fornyes hver periode, og din rate limit stiger. Kan opsiges når som helst.

Start
€19 / md.

eller €190 / år · 2 måneder gratis

250 kreditter / måned

  • 30 anmodninger / time
  • Kreditter fornyes månedligt
  • Kan opsiges når som helst
Kom i gang
★ Mest populær Pro
€49 / md.

eller €490 / år · 2 måneder gratis

1000 kreditter / måned

  • 60 anmodninger / time
  • Kreditter fornyes månedligt
  • Kan opsiges når som helst
Kom i gang
Vækst
€149 / md.

eller €1490 / år · 2 måneder gratis

5000 kreditter / måned

  • 120 anmodninger / time
  • Kreditter fornyes månedligt
  • Kan opsiges når som helst
Kom i gang

Abonnementer giver hele periodens kreditter på forhånd og hæver din anmodninger/time-grænse. Årlige abonnementer opkræver 10 måneder for 12.

№ 03  /  Sådan fungerer kreditter

Hvad et klip koster.

  • Standardklip (op til 1080p; kun lyd i enhver opløsning)1 kredit
  • 4K (2160p) videoklip4 kreditter
  • Kilde længere end 2 h (når det er kendt)+1 / job
  • Batch af N klip (zip eller sammensat)N × pr. klip

Gennemregnet eksempel

Tre 1080p-highlights + ét 4K-klip fra en 25-minutters video → 3×1 + 4 = 7 credits.

En 3-timers podcast klippet ned til én MP3 → 1 + 1 = 2 credits (+1'et er >2 h-tillægget).

№ 04  /  FAQ

Godt at vide.

Hvad er en kredit?

Ét produceret klip = én kredit. 4K-klip koster 4, og en batch multipliceres med antallet af klip.

Udløber kreditter?

Pakkekreditter er gyldige i 12 måneder. Abonnementskreditter gælder for den faktureringsperiode, de blev tildelt i.

Hvad er anmodninger/time-grænsen?

Hvor mange API-kald du kan sende pr. time. Pakker beholder standarden på 30; Pro hæver den til 60 og Scale til 120.

Kan jeg opsige når som helst?

Ja. Abonnementer opsiges med ét klik; du beholder eventuelle allerede tildelte kreditter, indtil de udløber.

Hvad hvis et klip mislykkes?

Mislykkede klip faktureres aldrig — reserverede kreditter refunderes automatisk, så længe tildelingen stadig er gyldig.

Kan jeg blande pakker og et abonnement?

Ja. Pakke- og abonnementskreditter lægges sammen; den saldo, der udløber først, bruges altid først.