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:
- Konto OpenClaw z co najmniej jednym aktywnym obszarem roboczym.
- 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).
- 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
- Otwórz edytor OpenClaw i utwórz nowy przepływ pracy.
- 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
- Ustaw interwał odpytywania (np. co godzinę).
Akcja: pobieranie wideo
- Dodaj węzeł akcji Żądanie HTTP po wyzwalaczu.
- 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"
}
- Odwzoruj
trigger.linkz elementu kanału RSS na poleurl.
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 komunikatemerrorz 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ł | Typ | Opis |
|---|---|---|
| Wyzwalacz RSS | Wyzwalacz | Co godzinę odpytuje kanał RSS YouTube |
| Filtr | Warunek | Pomija filmy krótsze niż 2 minuty |
| Pobieranie | HTTP POST | Wywołuje punkt końcowy yt-dlp, zwraca ścieżkę pliku |
| Sprawdzanie błędów | Warunek | Rozgałęzia na podstawie pola success |
| Transkrypcja | HTTP POST | Wysyła audio do API Whisper |
| Powiadomienie | Slack | Publikuje tytuł + podsumowanie transkrypcji na kanale |
| Dziennik | Arkusz kalkulacyjny | Dodaje 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)sjest 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-browseryt-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.