Sådan automatiserer du videodownloads i OpenClaw med yt-dlp
OpenClaw er en kraftfuld platform til workflowautomatisering, der giver dig mulighed for at forbinde API'er, udløsere og handlinger i problemfri pipelines. Kombineret med yt-dlp - den mest kapable videodownloader, der findes - kan du bygge automatiserede systemer til at overvåge konkurrenternes indhold, arkivere tutorials, udtrække lyd til transskription og meget mere.
Denne guide fører dig igennem opsætningen af yt-dlp-drevne videodownload-workflows i OpenClaw, fra en simpel URL-udløser til en fuldt automatiseret indholdovervågningspipeline.
Hvorfor kombinere yt-dlp med OpenClaw?
At gøre ting manuelt skalerer ikke. Hvis du har brug for at spore videoindhold på tværs af flere kanaler, arkivere undervisningsmateriale eller sende downloadede videoer videre til efterfølgende behandling (transskription, komprimering, analyse), har du brug for automatisering.
OpenClaw håndterer orkestreringen - udløsere, planlægning, forgreningslogik og notifikationer - mens yt-dlp klarer det hårde arbejde: pålideligt udtrække video fra over 1.000 understøttede sider.
Almindelige anvendelsestilfælde:
- Konkurrentovervågning: automatisk downloade nye videoer fra konkurrenters YouTube-kanaler og route dem til et transskriptions- eller analysetrin.
- Indholdsarkivering: udløse et download, når en ny video dukker op i et overvåget RSS-feed eller en afspilningsliste.
- Lydudtrækning: trække lyd fra video-URL'er til podcast-generering, transskriptionspipelines eller træningsdatasæt.
- Kvalitetssikring: verificere at offentligt tilgængelige videoer (produktdemoer, tutorials) forbliver tilgængelige og svarer til forventet indhold.
Forudsætninger
Inden du bygger dit OpenClaw-workflow, skal du sørge for at have:
- En OpenClaw-konto med mindst ét aktivt arbejdsområde.
- En server eller cloud-funktion, hvor yt-dlp er installeret og tilgængeligt via HTTP (du kan eksponere det med en lille FastAPI- eller Express-wrapper, eller bruge et administreret HuntAPI-endpoint).
- Grundlæggende kendskab til OpenClaws node-baserede editor.
Trin 1 - Opsæt et yt-dlp HTTP-endpoint
OpenClaw kommunikerer med eksterne værktøjer via HTTP. Den enkleste tilgang er at pakke yt-dlp ind i en lille API-server.
Her er et minimalt Python-eksempel med FastAPI:
from fastapi import FastAPI
from pydantic import BaseModel
import subprocess, json
app = FastAPI()
class DownloadRequest(BaseModel):
url: str
format: str = "bestvideo+bestaudio/best"
output_dir: str = "/tmp/downloads"
@app.post("/download")
def download_video(req: DownloadRequest):
result = subprocess.run(
[
"yt-dlp",
"--format", req.format,
"--output", f"{req.output_dir}/%(title)s.%(ext)s",
"--print-json",
req.url,
],
capture_output=True,
text=True,
)
metadata = json.loads(result.stdout.splitlines()[-1]) if result.returncode == 0 else {}
return {
"success": result.returncode == 0,
"title": metadata.get("title"),
"duration": metadata.get("duration"),
"filepath": metadata.get("filename"),
"error": result.stderr if result.returncode != 0 else None,
}
Deploy denne service og noter den offentlige URL - du bruger den som mål i dit OpenClaw HTTP-handlingsnode.
Trin 2 - Opret et OpenClaw-workflow
Udløser: ny video på en YouTube-kanal
- Åbn OpenClaw-editoren og opret et nyt workflow.
- Tilføj en Tidsplan- eller RSS-feed-udløsernode. YouTube-kanal-RSS-feeds følger dette mønster:
https://www.youtube.com/feeds/videos.xml?channel_id=DIN_CHANNEL_ID
- Indstil pollingsintervallet (f.eks. hver time).
Handling: download videoen
- Tilføj en HTTP-anmodning-handlingsnode efter udløseren.
- Konfigurer den som en POST-anmodning til dit yt-dlp-endpoint:
{
"url": "{{trigger.link}}",
"format": "bestvideo[height<=1080]+bestaudio/best",
"output_dir": "/mnt/storage/videos"
}
- Knyt
trigger.linkfra RSS-feed-elementet til felteturl.
Handling: udtrækk kun lyd (valgfrit)
Hvis du kun har brug for lyd (til transskriptions- eller podcast-workflows), skift format til:
{
"url": "{{trigger.link}}",
"format": "bestaudio/best"
}
Og tilføj --extract-audio --audio-format mp3 til din yt-dlp-kommando på serversiden.
Trin 3 - Håndter svaret
Efter downloaden returnerer HTTP-handlingsnoden et JSON-objekt med filstien, titlen, varigheden og successtatusen. Du kan bruge disse felter til at:
- Sende en Slack-notifikation med videotitlen og en downloadbekræftelse.
- Udløse et transskriptionsworkflow ved at sende filstien til en Whisper- eller AssemblyAI-node.
- Uploade til cloud-lager (S3, GCS, R2) ved hjælp af en lagringshandlingsnode.
- Logge resultater i et regneark til sporing og rapportering.
Eksempel: betinget fejlhåndtering
Tilføj en Betingelse-node efter HTTP-anmodningen for at kontrollere feltet success:
- Hvis
true→ fortsæt til næste handling (upload, transskription osv.). - Hvis
false→ send en advarsel til dit team mederror-meddelelsen fra yt-dlp.
Trin 4 - Håndter hastighedsbegrænsninger og georestriktioner
Storskalerede workflows kan ramme YouTubes hastighedsbegrænsninger (Fejl 429) eller støde på geografisk blokeret indhold. Send et --proxy-argument i din yt-dlp-kommando:
"yt-dlp",
"--proxy", "http://din-proxy:port",
"--format", req.format,
...
Til roterende proxier skal du bruge en udbyder, der eksponerer en enkelt gateway, som automatisk skifter exit-IP'er. Dette undgår at administrere en proxyliste i din workflowlogik.
Du kan også tilføje en genforsøg-node i OpenClaw til automatisk at genkøre downloadtrinnet med eksponentiel backoff, hvis det første forsøg mislykkes.
Workflow-blueprint: komplet indholdovervågningspipeline
Her er et komplet blueprint, du kan importere direkte i OpenClaw:
| Node | Type | Beskrivelse |
|---|---|---|
| RSS-udløser | Udløser | Poller et YouTube-kanal-RSS-feed hver time |
| Filter | Betingelse | Springer videoer kortere end 2 minutter over |
| Download | HTTP POST | Kalder yt-dlp-endpointet, returnerer filstien |
| Fejlkontrol | Betingelse | Forgrener baseret på feltet success |
| Transskription | HTTP POST | Sender lyd til Whisper-API'et |
| Notifikation | Slack | Poster titel + transskriptionsresumé til en kanal |
| Log | Regneark | Tilføjer en række til et Google Sheet |
Tips til produktion
- Cache behandlede URL'er ved hjælp af en Redis- eller databasenode for at undgå at downloade den samme video igen i hver udløsercyklus.
- Indstil outputskabeloner omhyggeligt i yt-dlp for at undgå filnavnkollisioner:
%(upload_date)s_%(id)s_%(title)s.%(ext)ser et sikkert standardvalg. - Overvåg diskplads på din downloadserver; tilføj et oprydningstrin, der sletter filer, der er ældre end N dage, efter de er behandlet.
- Brug yt-dlps
--cookies-from-browser-mulighed (serversiden) for sider, der kræver godkendelse, og roter sessioner for at forblive compliant.
Forenkl med HuntAPI
I stedet for at deploye og vedligeholde din egen yt-dlp-server (Trin 1) kan du pege dit OpenClaw HTTP-node direkte mod HuntAPI. HuntAPI leverer et klar-til-brug, administreret videodownload-endpoint - ingen infrastruktur at vedligeholde, ingen proxyliste at håndtere og indbygget understøttelse af geo-afblokering og håndtering af hastighedsbegrænsninger.
Dette giver dig mulighed for at gå fra nul til et fungerende OpenClaw-videodownload-workflow på få minutter.