Tutorial
|
przez Hunt Team

Jak automatyzować pobieranie wideo w OpenClaw za pomocą yt-dlp

OpenClaw to potężna platforma do automatyzacji przepływów pracy, która pozwala łączyć API, wyzwalacze i akcje w płynne potoki. W połączeniu z yt-dlp - najpotężniejszym dostępnym narzędziem do pobierania wideo - możesz budować zautomatyzowane systemy do monitorowania treści konkurencji, archiwizowania tutoriali, wyodrębniania audio do transkrypcji i wiele więcej.

Ten przewodnik przeprowadzi Cię przez konfigurację przepływów pracy pobierania wideo opartych na yt-dlp w OpenClaw, od prostego wyzwalacza URL do w pełni zautomatyzowanego potoku monitorowania treści.

Dlaczego łączyć yt-dlp z OpenClaw?

Ręczne wykonywanie zadań nie skaluje się. Jeśli musisz śledzić treści wideo na wielu kanałach, archiwizować materiały edukacyjne lub przekazywać pobrane filmy do dalszego przetwarzania (transkrypcja, kompresja, analiza), potrzebujesz automatyzacji.

OpenClaw zarządza orkiestracją - wyzwalacze, harmonogramowanie, logika rozgałęziania i powiadomienia - podczas gdy yt-dlp wykonuje ciężką pracę: niezawodne wyodrębnianie wideo z ponad 1000 obsługiwanych stron.

Typowe przypadki użycia:

  • Monitorowanie konkurencji: automatyczne pobieranie nowych filmów z kanałów YouTube konkurencji i kierowanie ich do etapu transkrypcji lub analizy.
  • Archiwizacja treści: wyzwalanie pobierania, gdy nowy film pojawi się w obserwowanym kanale RSS lub liście odtwarzania.
  • Ekstrakcja audio: pobieranie audio z adresów URL wideo do generowania podcastów, potoków transkrypcji lub zbiorów danych treningowych.
  • Zapewnienie jakości: weryfikowanie, czy publicznie dostępne filmy (dema produktów, tutoriale) pozostają dostępne i odpowiadają oczekiwanej treści.

Wymagania wstępne

Przed zbudowaniem przepływu pracy OpenClaw upewnij się, że masz:

  1. Konto OpenClaw z co najmniej jednym aktywnym obszarem roboczym.
  2. Serwer lub funkcję chmurową, na której zainstalowany jest yt-dlp i jest dostępny przez HTTP (możesz go udostępnić za pomocą małego wrappera FastAPI lub Express, lub użyć zarządzanego punktu końcowego HuntAPI).
  3. Podstawową znajomość edytora opartego na węzłach OpenClaw.

Krok 1 - Konfiguracja punktu końcowego HTTP yt-dlp

OpenClaw komunikuje się z zewnętrznymi narzędziami przez HTTP. Najprostszym podejściem jest opakowanie yt-dlp w mały serwer API.

Oto minimalny przykład w Pythonie używający 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,
    }

Wdróż tę usługę i zanotuj publiczny URL - użyjesz go jako celu w węźle akcji HTTP OpenClaw.

Krok 2 - Tworzenie przepływu pracy OpenClaw

Wyzwalacz: nowy film na kanale YouTube

  1. Otwórz edytor OpenClaw i utwórz nowy przepływ pracy.
  2. Dodaj węzeł wyzwalacza Harmonogram lub Kanał RSS. Kanały RSS YouTube mają następujący wzorzec:
https://www.youtube.com/feeds/videos.xml?channel_id=TWOJ_CHANNEL_ID
  1. Ustaw interwał odpytywania (np. co godzinę).

Akcja: pobieranie wideo

  1. Dodaj węzeł akcji Żądanie HTTP po wyzwalaczu.
  2. Skonfiguruj go jako żądanie POST do Twojego punktu końcowego yt-dlp:
{
  "url": "{{trigger.link}}",
  "format": "bestvideo[height<=1080]+bestaudio/best",
  "output_dir": "/mnt/storage/videos"
}
  1. Odwzoruj trigger.link z elementu kanału RSS na pole url.

Akcja: wyodrębnianie tylko audio (opcjonalnie)

Jeśli potrzebujesz tylko audio (do transkrypcji lub przepływów pracy podcastów), zmień format na:

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

I dodaj --extract-audio --audio-format mp3 do polecenia yt-dlp po stronie serwera.

Krok 3 - Obsługa odpowiedzi

Po pobraniu węzeł akcji HTTP zwraca obiekt JSON ze ścieżką pliku, tytułem, czasem trwania i statusem powodzenia. Możesz używać tych pól, aby:

  • Wysyłać powiadomienie Slack z tytułem wideo i potwierdzeniem pobrania.
  • Wyzwalać przepływ transkrypcji przekazując ścieżkę pliku do węzła Whisper lub AssemblyAI.
  • Przesyłać do pamięci chmurowej (S3, GCS, R2) używając węzła akcji pamięci masowej.
  • Rejestrować wyniki w arkuszu kalkulacyjnym do śledzenia i raportowania.

Przykład: warunkowa obsługa błędów

Dodaj węzeł Warunek po żądaniu HTTP, aby sprawdzić pole success:

  • Jeśli true → przejdź do następnej akcji (przesyłanie, transkrypcja itp.).
  • Jeśli false → wyślij alert do swojego zespołu z komunikatem error z yt-dlp.

Krok 4 - Radzenie sobie z limitami szybkości i ograniczeniami geograficznymi

Przepływy pracy na dużą skalę mogą trafić na limity szybkości YouTube (Błąd 429) lub napotkać treści zablokowane geograficznie. Przekaż argument --proxy w poleceniu yt-dlp:

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

W przypadku rotujących proxy używaj dostawcy, który udostępnia pojedynczą bramę automatycznie zmieniającą wychodzące IP. Pozwala to uniknąć zarządzania listą proxy w logice przepływu pracy.

Możesz też dodać węzeł ponownych prób w OpenClaw, aby automatycznie ponownie uruchomić krok pobierania z wykładniczym opóźnieniem, jeśli pierwsza próba się nie powiedzie.

Schemat przepływu pracy: kompletny potok monitorowania treści

Oto kompletny schemat, który możesz bezpośrednio zaimportować do OpenClaw:

WęzełTypOpis
Wyzwalacz RSSWyzwalaczCo godzinę odpytuje kanał RSS YouTube
FiltrWarunekPomija filmy krótsze niż 2 minuty
PobieranieHTTP POSTWywołuje punkt końcowy yt-dlp, zwraca ścieżkę pliku
Sprawdzanie błędówWarunekRozgałęzia na podstawie pola success
TranskrypcjaHTTP POSTWysyła audio do API Whisper
PowiadomienieSlackPublikuje tytuł + podsumowanie transkrypcji na kanale
DziennikArkusz kalkulacyjnyDodaje wiersz do Google Sheet

Wskazówki dla środowiska produkcyjnego

  • Buforuj przetworzone URL używając węzła Redis lub bazy danych, aby uniknąć ponownego pobierania tego samego wideo w każdym cyklu wyzwalacza.
  • Starannie ustawiaj szablony wyjścia w yt-dlp, aby uniknąć kolizji nazw plików: %(upload_date)s_%(id)s_%(title)s.%(ext)s jest bezpiecznym domyślnym ustawieniem.
  • Monitoruj miejsce na dysku na serwerze pobierania; dodaj krok czyszczenia, który usuwa pliki starsze niż N dni po przetworzeniu.
  • Używaj opcji --cookies-from-browser yt-dlp (po stronie serwera) dla stron wymagających uwierzytelniania i rotuj sesje, aby zachować zgodność.

Uprość z HuntAPI

Zamiast wdrażać i utrzymywać własny serwer yt-dlp (Krok 1), możesz skierować węzeł HTTP OpenClaw bezpośrednio na HuntAPI. HuntAPI zapewnia gotowy do użycia, zarządzany punkt końcowy do pobierania wideo - bez infrastruktury do utrzymania, bez listy proxy do zarządzania i z wbudowaną obsługą odblokowywania geograficznego oraz limitów szybkości.

Pozwala to przejść od zera do działającego przepływu pracy pobierania wideo w OpenClaw w ciągu kilku minut.

Źródła

VIDEO API

Discover why Hunt is the preferred API provider for developers.