Skill: dodaj przepis z filmu YouTube
Cel: z URL lub ID filmu utwórz krótki przepis i zapisz go do aplikacji.
# INPUT
film_ref: string # pełny URL YouTube albo 11-znakowe video_id
# OUTPUT
Nowy przepis w systemie przez POST /api/recipes
# DOKUMENTACJA (gdy nie masz dostępu do kodu źródłowego)
- Otwórz /docs-local
- Strona zawiera aktualny opis endpointów, payloadów i błędów API
# KROKI
1) Wyciągnij video_id:
- jeśli film_ref pasuje do ^[A-Za-z0-9_-]{11}$, to to jest ID
- inaczej parsuj URL i użyj:
- ?v=VIDEO_ID
- youtu.be/VIDEO_ID
- /shorts/VIDEO_ID
- /embed/VIDEO_ID
- końcowo video_id musi mieć 11 znaków
2) Pobierz transkrypcję:
POST /api/youtube/transcript
{"video_id":"VIDEO_ID"}
Odpowiedź zawiera m.in.:
- title
- channel_name (jeśli dostępne)
- transcript
3) Z transkrypcji zbuduj krótki przepis:
- title: zwięzła nazwa dania (po polsku)
- ingredients: tylko niezbędne składniki, 1 składnik = 1 linia
- instructions: krótkie kroki (4-10 linii), bez dygresji
- channel_name: z pola channel_name odpowiedzi (lub null)
- tags: dobierz samodzielnie i zwięźle.
Użyj wyłącznie:
1) typu dania,
2) metody przygotowania,
3) 1-2 głównych składników.
Nie dodawaj nazwy kanału do tags (kanał jest osobno w channel_name).
W UI kanał jest osobnym pierwszym chipem w innym kolorze.
- source_url: https://www.youtube.com/watch?v=VIDEO_ID
Uwaga: jeśli ilości nie padają wprost, użyj rozsądnych przybliżeń.
4) Zapisz przepis:
POST /api/recipes
{
"title":"...",
"ingredients":"linia1\nlinia2\n...",
"instructions":"krok1\nkrok2\n...",
"channel_name":"...",
"tags":"...",
"source_url":"https://www.youtube.com/watch?v=VIDEO_ID"
}
5) Zwróć użytkownikowi:
- id i tytuł utworzonego przepisu
- krótko: jakie założenia były zgadywane
# OBSŁUGA BŁĘDÓW
- 400: niepoprawne ID/URL → poproś o poprawny link
- 404: brak transkrypcji → poinformuj, że film nie ma dostępnych napisów
- 503: YouTube blokuje IP → zasugeruj ponowienie później lub proxy