Tutorial
|
av Hunt Team

Hur du automatiserar videohämtningar i OpenClaw med yt-dlp

OpenClaw är en kraftfull plattform för arbetsflödesautomatisering som låter dig koppla ihop API:er, utlösare och åtgärder i sömlösa pipelines. Kombinerat med yt-dlp - den mest kapabla videohämtaren som finns - kan du bygga automatiserade system för att övervaka konkurrenters innehåll, arkivera handledningar, extrahera ljud för transkription och mycket mer.

Den här guiden visar hur du konfigurerar yt-dlp-drivna arbetsflöden för videohämtning i OpenClaw, från en enkel URL-utlösare till en helt automatiserad pipeline för innehållsövervakning.

Varför kombinera yt-dlp med OpenClaw?

Att göra saker manuellt skalas inte. Om du behöver spåra videoinnehåll över flera kanaler, arkivera utbildningsmaterial eller mata nedladdade videoer till nedströmsbearbetning (transkription, komprimering, analys) behöver du automatisering.

OpenClaw hanterar orkestreringen - utlösare, schemaläggning, förgreningslogik och notiser - medan yt-dlp gör det tunga arbetet: tillförlitlig videoextrahering från över 1 000 stödda webbplatser.

Vanliga användningsfall:

  • Konkurrentövervakning: automatiskt ladda ner nya videoer från konkurrenters YouTube-kanaler och dirigera dem till ett transkriptions- eller analyssteg.
  • Innehållsarkivering: utlösa en nedladdning när ett nytt videoklipp visas i ett bevakat RSS-flöde eller en spellista.
  • Ljudextrahering: hämta ljud från video-URL:er för podcastgenerering, transkriptionspipelines eller träningsdataset.
  • Kvalitetssäkring: verifiera att offentligt tillgängliga videoer (produktdemonstrationer, handledningar) förblir tillgängliga och matchar förväntat innehåll.

Förutsättningar

Innan du bygger ditt OpenClaw-arbetsflöde, se till att du har:

  1. Ett OpenClaw-konto med minst en aktiv arbetsyta.
  2. En server eller molnfunktion där yt-dlp är installerat och tillgängligt via HTTP (du kan exponera det med en liten FastAPI- eller Express-wrapper, eller använda en hanterad HuntAPI-endpoint).
  3. Grundläggande kännedom om OpenClaws nodbaserade editor.

Steg 1 - Konfigurera en yt-dlp HTTP-endpoint

OpenClaw kommunicerar med externa verktyg via HTTP. Det enklaste tillvägagångssättet är att omsluta yt-dlp i en liten API-server.

Här är ett minimalt Python-exempel 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,
    }

Driftsätt den här tjänsten och notera den offentliga URL:en - du använder den som mål i din OpenClaw HTTP-åtgärdsnod.

Steg 2 - Skapa ett OpenClaw-arbetsflöde

Utlösare: ny video på en YouTube-kanal

  1. Öppna OpenClaw-editorn och skapa ett nytt arbetsflöde.
  2. Lägg till en Schema- eller RSS-flöde-utlösarnod. YouTube-kanalers RSS-flöden följer det här mönstret:
https://www.youtube.com/feeds/videos.xml?channel_id=DIN_CHANNEL_ID
  1. Ställ in pollingsintervallet (t.ex. varje timme).

Åtgärd: ladda ned videon

  1. Lägg till en HTTP-förfrågan-åtgärdsnod efter utlösaren.
  2. Konfigurera den som en POST-förfrågan till din yt-dlp-endpoint:
{
  "url": "{{trigger.link}}",
  "format": "bestvideo[height<=1080]+bestaudio/best",
  "output_dir": "/mnt/storage/videos"
}
  1. Mappa trigger.link från RSS-flödets objekt till fältet url.

Åtgärd: extrahera endast ljud (valfritt)

Om du bara behöver ljud (för transkriptions- eller podcastarbetsflöden), ändra formatet till:

{
  "url": "{{trigger.link}}",
  "format": "bestaudio/best"
}

Och lägg till --extract-audio --audio-format mp3 i ditt yt-dlp-kommando på serversidan.

Steg 3 - Hantera svaret

Efter nedladdningen returnerar HTTP-åtgärdsnoden ett JSON-objekt med filsökvägen, titeln, varaktigheten och framgångsstatusen. Du kan använda dessa fält för att:

  • Skicka en Slack-notis med videotiteln och en bekräftelse på nedladdningen.
  • Utlösa ett transkriptionsarbetsflöde genom att skicka filsökvägen till en Whisper- eller AssemblyAI-nod.
  • Ladda upp till molnlagring (S3, GCS, R2) med en lagringsåtgärdsnod.
  • Logga resultat i ett kalkylblad för spårning och rapportering.

Exempel: villkorlig felhantering

Lägg till en Villkor-nod efter HTTP-förfrågan för att kontrollera fältet success:

  • Om true → fortsätt till nästa åtgärd (uppladdning, transkription osv.).
  • Om false → skicka en varning till ditt team med error-meddelandet från yt-dlp.

Steg 4 - Hantera hastighetsbegränsningar och georestriktioner

Storskaliga arbetsflöden kan nå YouTubes hastighetsgränser (Fel 429) eller stöta på geoblockerat innehåll. Skicka ett --proxy-argument i ditt yt-dlp-kommando:

"yt-dlp",
"--proxy", "http://din-proxy:port",
"--format", req.format,
...

För roterande proxyservrar, använd en leverantör som exponerar en enda gateway som automatiskt byter exit-IP:er. Detta undviker hantering av en proxylista i din arbetsflödeslogik.

Du kan också lägga till en återförsöks-nod i OpenClaw för att automatiskt köra om nedladdningssteget med exponentiell backoff om det första försöket misslyckas.

Arbetsflödesritning: komplett pipeline för innehållsövervakning

Här är en komplett ritning som du kan importera direkt till OpenClaw:

NodTypBeskrivning
RSS-utlösareUtlösarePollar ett YouTube-kanals RSS-flöde varje timme
FilterVillkorHoppar över videoklipp kortare än 2 minuter
NedladdningHTTP POSTAnropar yt-dlp-endpointen, returnerar filsökvägen
FelkontrollVillkorFörgrenar baserat på fältet success
TranskriptionHTTP POSTSkickar ljud till Whisper API
NotisSlackPublicerar titel + transkriptionssammanfattning till en kanal
LoggKalkylbladLägger till en rad i ett Google Sheet

Tips för produktion

  • Cacha behandlade URL:er med en Redis- eller databasnod för att undvika att ladda ned samma video igen i varje utlösarcykel.
  • Ange utdatamallar noggrant i yt-dlp för att undvika filnamnskollisioner: %(upload_date)s_%(id)s_%(title)s.%(ext)s är ett säkert standardval.
  • Övervaka diskutrymme på din nedladdningsserver; lägg till ett rensningssteg som tar bort filer äldre än N dagar efter att de har bearbetats.
  • Använd yt-dlps --cookies-from-browser-alternativ (serversidan) för webbplatser som kräver autentisering, och rotera sessioner för att förbli compliant.

Förenkla med HuntAPI

I stället för att driftsätta och underhålla din egen yt-dlp-server (Steg 1) kan du peka din OpenClaw HTTP-nod direkt mot HuntAPI. HuntAPI tillhandahåller en färdig, hanterad endpoint för videohämtning - ingen infrastruktur att underhålla, ingen proxylista att hantera och inbyggt stöd för geo-avblockering och hantering av hastighetsgränser.

Detta låter dig gå från noll till ett fungerande arbetsflöde för videohämtning i OpenClaw på några minuter.

Källor

VIDEO API

Discover why Hunt is the preferred API provider for developers.