Dokumentacja API Hop
YouTube: opis punktów końcowych
Odpytuj filmy YouTube, kanały, Shorts, komentarze, posty społeczności, wyniki wyszukiwania i metadane strumieni przez 34 uwierzytelnione punkty końcowe: 32 GET i 2 POST.
Wybierz punkt końcowy i wyślij tylko jego udokumentowane pola. Gdy wymieniono alternatywy, podaj co najmniej jedno pole z każdej grupy. Wartości stronicowania muszą pochodzić z poprzedniej odpowiedzi; nie ma automatycznego stronicowania.
Operacje GET używają parametrów zapytania bez treści żądania. Stream V3 używa POST z treścią application/json i bez parametrów zapytania; wysyłaj proxy_url tylko w tej treści. Segment wersji wybiera wersję interfejsu YouTube. Nieznane lub zdublowane pola są odrzucane. Zachowuj identyfikatory i kursory stronicowania jako ciągi znaków, także wartości większe niż bezpieczny zakres liczb JavaScript.
Dla żądań synchronicznych: ceny dotyczą udanego żądania, a nie zwróconej pozycji. Każda strona jest osobnym żądaniem. Większość operacji kosztuje $0.001. Dwa warianty wyszukiwania V2 kosztują $0.002; wariant strumienia V2 kosztuje $0.004. Sprawdź poszczególne punkty końcowe poniżej. Pierwszeństwo mają ceny indywidualne konta. Rabaty ilościowe dostawcy nie są automatycznie przenoszone. Nieudane wywołania dostawcy zwalniają rezerwację; błędy rozliczenia zwracają błąd i nie wywołują drugiego żądania do dostawcy.
Zadania napisów
POST https://api.apihop.ai/v1/youtube/web-v2/videos/captions zwraca HTTP 202 i identyfikator zadania platformy z Location: /v1/jobs/\{id\}. Odpytuj GET https://api.apihop.ai/v1/youtube/web-v2/videos/captions/result?job_id=\{id\} co 2–5 sekund. Zadanie może odczytać tylko jego właściciel w ramach najemcy. Zapytania o wynik są bezpłatne; utworzenie kosztuje katalogowo $0.008. Wynik bez napisów jest udany i płatny. Format ustala się przy tworzeniu (domyślnie srt); opcjonalny format wyniku musi być zgodny, inaczej zwracany jest HTTP 400. data.result pozostaje null do COMPLETED; zadania mogą zakończyć się jako FAILED. Te punkty końcowe pobierają istniejące napisy, a nie transkrypcje AI.
Jeśli przyjęcie zgłoszenia jest niepewne, żądanie nie jest powtarzane, a rezerwacja może pozostać zablokowana do 30-minutowego terminu zadania. Wynik dostawcy może pozostać oczekujący podczas uzgadniania rozliczenia. Przejściowy błąd odpytywania nie jest końcowym niepowodzeniem zadania.
{"success":true,"data":{"id":"9007199254740993001","status":"PROCESSING","result":null},"requestId":"example"}Zakres i ograniczenia
Ścieżki web i web-v2 wybierają rodzinę interfejsu dostawcy. Stream V3 obsługuje pobieranie POST przez własne proxy HTTP ze stałym wyjściem. Punkty końcowe strumieni zwracają metadane i adresy URL, a nie pliki multimedialne lub gwarantowane pobrania. Opisy kanałów mogą wymagać drugiego osobno płatnego żądania z continuation_token. Nie ma automatycznych ponowień.
web-get_relate_video
GET https://api.apihop.ai/v1/youtube/web/videos/related
Cena za udane żądanie: $0.001 (1000 kredytów).
| Pole | Wymagane | Kontrakt |
|---|---|---|
video_id | Tak | string |
continuation_token | Nie | string |
curl --get "https://api.apihop.ai/v1/youtube/web/videos/related" \
-H "Authorization: Bearer YOUR_API_KEY" \
--data-urlencode "video_id=LuIL5JATZsc"web-search_video
GET https://api.apihop.ai/v1/youtube/web/search/videos
Cena za udane żądanie: $0.001 (1000 kredytów).
| Pole | Wymagane | Kontrakt |
|---|---|---|
search_query | Tak | string |
language_code | Nie | string; domyślnie: "en" |
order_by | Nie | string; domyślnie: "this_month" |
country_code | Nie | string; domyślnie: "us" |
continuation_token | Nie | string |
curl --get "https://api.apihop.ai/v1/youtube/web/search/videos" \
-H "Authorization: Bearer YOUR_API_KEY" \
--data-urlencode "search_query=Minecraft"web-get_channel_id
GET https://api.apihop.ai/v1/youtube/web/channels/id
Cena za udane żądanie: $0.001 (1000 kredytów).
| Pole | Wymagane | Kontrakt |
|---|---|---|
channel_name | Tak | string |
curl --get "https://api.apihop.ai/v1/youtube/web/channels/id" \
-H "Authorization: Bearer YOUR_API_KEY" \
--data-urlencode "channel_name=LinusTechTips"web-get_channel_id_v2
GET https://api.apihop.ai/v1/youtube/web/channels/id/by-url
Cena za udane żądanie: $0.001 (1000 kredytów).
| Pole | Wymagane | Kontrakt |
|---|---|---|
channel_url | Tak | string |
curl --get "https://api.apihop.ai/v1/youtube/web/channels/id/by-url" \
-H "Authorization: Bearer YOUR_API_KEY" \
--data-urlencode "channel_url=https://www.youtube.com/@CozyCraftYT"web-get_channel_url
GET https://api.apihop.ai/v1/youtube/web/channels/url
Cena za udane żądanie: $0.001 (1000 kredytów).
| Pole | Wymagane | Kontrakt |
|---|---|---|
channel_id | Tak | string |
curl --get "https://api.apihop.ai/v1/youtube/web/channels/url" \
-H "Authorization: Bearer YOUR_API_KEY" \
--data-urlencode "channel_id=UCeu6U67OzJhV1KwBansH3Dg"web-get_channel_info
GET https://api.apihop.ai/v1/youtube/web/channels/info
Cena za udane żądanie: $0.001 (1000 kredytów).
| Pole | Wymagane | Kontrakt |
|---|---|---|
channel_id | Tak | string |
curl --get "https://api.apihop.ai/v1/youtube/web/channels/info" \
-H "Authorization: Bearer YOUR_API_KEY" \
--data-urlencode "channel_id=UCXuqSBlHAE6Xw-yeJA0Tunw"web-get_channel_short_videos
GET https://api.apihop.ai/v1/youtube/web/channels/shorts
Cena za udane żądanie: $0.001 (1000 kredytów).
| Pole | Wymagane | Kontrakt |
|---|---|---|
channel_id | Tak | string |
continuation_token | Nie | string |
curl --get "https://api.apihop.ai/v1/youtube/web/channels/shorts" \
-H "Authorization: Bearer YOUR_API_KEY" \
--data-urlencode "channel_id=UCXuqSBlHAE6Xw-yeJA0Tunw"web-search_channel
GET https://api.apihop.ai/v1/youtube/web/channels/search
Cena za udane żądanie: $0.001 (1000 kredytów).
| Pole | Wymagane | Kontrakt |
|---|---|---|
channel_id | Tak | string |
search_query | Tak | string |
language_code | Nie | string; domyślnie: "en" |
country_code | Nie | string; domyślnie: "us" |
continuation_token | Nie | string |
curl --get "https://api.apihop.ai/v1/youtube/web/channels/search" \
-H "Authorization: Bearer YOUR_API_KEY" \
--data-urlencode "channel_id=UCXuqSBlHAE6Xw-yeJA0Tunw" \
--data-urlencode "search_query=AMD"web_v2-get_video_info
GET https://api.apihop.ai/v1/youtube/web-v2/videos/info
Cena za udane żądanie: $0.001 (1000 kredytów).
| Pole | Wymagane | Kontrakt |
|---|---|---|
video_id | Tak | string; minLength: 11; maxLength: 11 |
language_code | Nie | string; domyślnie: "zh-CN" |
need_format | Nie | boolean; domyślnie: true |
curl --get "https://api.apihop.ai/v1/youtube/web-v2/videos/info" \
-H "Authorization: Bearer YOUR_API_KEY" \
--data-urlencode "video_id=oaSNBz4qMQY"web_v2-get_video_info_v2
GET https://api.apihop.ai/v1/youtube/web-v2/videos/info-v2
Cena za udane żądanie: $0.001 (1000 kredytów).
Co najmniej jedno: video_id, video_url.
| Pole | Wymagane | Kontrakt |
|---|---|---|
video_id | Nie | string |
video_url | Nie | string |
need_format | Nie | boolean; domyślnie: true |
curl --get "https://api.apihop.ai/v1/youtube/web-v2/videos/info-v2" \
-H "Authorization: Bearer YOUR_API_KEY" \
--data-urlencode "video_id=dQw4w9WgXcQ"web_v2-get_video_comments
GET https://api.apihop.ai/v1/youtube/web-v2/videos/comments
Cena za udane żądanie: $0.001 (1000 kredytów).
| Pole | Wymagane | Kontrakt |
|---|---|---|
video_id | Tak | string; minLength: 11; maxLength: 11 |
language_code | Nie | string; domyślnie: "zh-CN" |
country_code | Nie | string; domyślnie: "US" |
sort_by | Nie | string; top, newest; domyślnie: "top" |
continuation_token | Nie | string |
need_format | Nie | boolean; domyślnie: true |
curl --get "https://api.apihop.ai/v1/youtube/web-v2/videos/comments" \
-H "Authorization: Bearer YOUR_API_KEY" \
--data-urlencode "video_id=LuIL5JATZsc"web_v2-get_video_comment_replies
GET https://api.apihop.ai/v1/youtube/web-v2/videos/comments/replies
Cena za udane żądanie: $0.001 (1000 kredytów).
| Pole | Wymagane | Kontrakt |
|---|---|---|
continuation_token | Tak | string |
language_code | Nie | string; domyślnie: "zh-CN" |
country_code | Nie | string; domyślnie: "US" |
need_format | Nie | boolean; domyślnie: true |
curl --get "https://api.apihop.ai/v1/youtube/web-v2/videos/comments/replies" \
-H "Authorization: Bearer YOUR_API_KEY" \
--data-urlencode "continuation_token=example"web_v2-get_channel_description
GET https://api.apihop.ai/v1/youtube/web-v2/channels/description
Cena za udane żądanie: $0.001 (1000 kredytów).
Co najmniej jedno: channel_id, continuation_token.
| Pole | Wymagane | Kontrakt |
|---|---|---|
channel_id | Nie | string |
continuation_token | Nie | string |
language_code | Nie | string; domyślnie: "zh-CN" |
country_code | Nie | string; domyślnie: "US" |
need_format | Nie | boolean; domyślnie: true |
curl --get "https://api.apihop.ai/v1/youtube/web-v2/channels/description" \
-H "Authorization: Bearer YOUR_API_KEY" \
--data-urlencode "channel_id=UCeu6U67OzJhV1KwBansH3Dg"web_v2-get_general_search
GET https://api.apihop.ai/v1/youtube/web-v2/search
Cena za udane żądanie: $0.001 (1000 kredytów).
| Pole | Wymagane | Kontrakt |
|---|---|---|
search_query | Tak | string; maxLength: 200 |
language_code | Nie | string; domyślnie: "zh-CN" |
country_code | Nie | string; domyślnie: "US" |
time_zone | Nie | string; domyślnie: "America/Los_Angeles" |
upload_time | Nie | string; hour, today, week, month, year |
duration | Nie | string; short, medium, long |
content_type | Nie | string; video, channel, playlist, movie |
feature | Nie | string; live, 4k, hd, subtitles, creative_commons, 360, vr180, 3d, hdr, location, purchased |
sort_by | Nie | string; relevance, upload_date, view_count, rating |
continuation_token | Nie | string |
curl --get "https://api.apihop.ai/v1/youtube/web-v2/search" \
-H "Authorization: Bearer YOUR_API_KEY" \
--data-urlencode "search_query=Python编程"web_v2-get_general_search_v2
GET https://api.apihop.ai/v1/youtube/web-v2/search-v2
Cena za udane żądanie: $0.002 (2000 kredytów).
Co najmniej jedno: keyword, continuation_token.
| Pole | Wymagane | Kontrakt |
|---|---|---|
keyword | Nie | string; maxLength: 200 |
continuation_token | Nie | string |
upload_date | Nie | string; last_hour, today, this_week, this_month, this_year |
type | Nie | string; video, channel, playlist, movie |
duration | Nie | string; short, medium, long |
features | Nie | string |
sort_by | Nie | string; relevance, upload_date, view_count, rating |
curl --get "https://api.apihop.ai/v1/youtube/web-v2/search-v2" \
-H "Authorization: Bearer YOUR_API_KEY" \
--data-urlencode "keyword=Python tutorial"web_v2-get_shorts_search
GET https://api.apihop.ai/v1/youtube/web-v2/search/shorts
Cena za udane żądanie: $0.001 (1000 kredytów).
| Pole | Wymagane | Kontrakt |
|---|---|---|
search_query | Tak | string; maxLength: 200 |
language_code | Nie | string; domyślnie: "en-US" |
country_code | Nie | string; domyślnie: "US" |
time_zone | Nie | string; domyślnie: "America/Los_Angeles" |
upload_time | Nie | string; hour, today, week, month, year |
sort_by | Nie | string; relevance, upload_date, view_count, rating |
continuation_token | Nie | string |
filter_mixed_content | Nie | boolean; domyślnie: true |
curl --get "https://api.apihop.ai/v1/youtube/web-v2/search/shorts" \
-H "Authorization: Bearer YOUR_API_KEY" \
--data-urlencode "search_query=Python编程"web_v2-get_shorts_search_v2
GET https://api.apihop.ai/v1/youtube/web-v2/search/shorts-v2
Cena za udane żądanie: $0.002 (2000 kredytów).
Co najmniej jedno: keyword, continuation_token.
| Pole | Wymagane | Kontrakt |
|---|---|---|
keyword | Nie | string; maxLength: 200 |
continuation_token | Nie | string |
upload_date | Nie | string; last_hour, today, this_week, this_month, this_year |
sort_by | Nie | string; relevance, upload_date, view_count, rating |
curl --get "https://api.apihop.ai/v1/youtube/web-v2/search/shorts-v2" \
-H "Authorization: Bearer YOUR_API_KEY" \
--data-urlencode "keyword=coding tips"web_v2-get_channel_id
GET https://api.apihop.ai/v1/youtube/web-v2/channels/id
Cena za udane żądanie: $0.001 (1000 kredytów).
| Pole | Wymagane | Kontrakt |
|---|---|---|
channel_url | Tak | string |
curl --get "https://api.apihop.ai/v1/youtube/web-v2/channels/id" \
-H "Authorization: Bearer YOUR_API_KEY" \
--data-urlencode "channel_url=https://www.youtube.com/@CozyCraftYT"web_v2-get_channel_url
GET https://api.apihop.ai/v1/youtube/web-v2/channels/url
Cena za udane żądanie: $0.001 (1000 kredytów).
| Pole | Wymagane | Kontrakt |
|---|---|---|
channel_id | Tak | string |
curl --get "https://api.apihop.ai/v1/youtube/web-v2/channels/url" \
-H "Authorization: Bearer YOUR_API_KEY" \
--data-urlencode "channel_id=UCeu6U67OzJhV1KwBansH3Dg"web_v2-get_channel_videos
GET https://api.apihop.ai/v1/youtube/web-v2/channels/videos
Cena za udane żądanie: $0.001 (1000 kredytów).
| Pole | Wymagane | Kontrakt |
|---|---|---|
channel_id | Tak | string |
language_code | Nie | string; domyślnie: "zh-CN" |
country_code | Nie | string; domyślnie: "US" |
continuation_token | Nie | string |
need_format | Nie | boolean; domyślnie: true |
curl --get "https://api.apihop.ai/v1/youtube/web-v2/channels/videos" \
-H "Authorization: Bearer YOUR_API_KEY" \
--data-urlencode "channel_id=UCJHBJ7F-nAIlMGolm0Hu4vg"web_v2-get_video_streams
GET https://api.apihop.ai/v1/youtube/web-v2/videos/streams
Cena za udane żądanie: $0.001 (1000 kredytów).
Co najmniej jedno: video_id, video_url.
| Pole | Wymagane | Kontrakt |
|---|---|---|
video_id | Nie | string |
video_url | Nie | string |
curl --get "https://api.apihop.ai/v1/youtube/web-v2/videos/streams" \
-H "Authorization: Bearer YOUR_API_KEY" \
--data-urlencode "video_id=dQw4w9WgXcQ"web_v2-get_video_streams_v2
GET https://api.apihop.ai/v1/youtube/web-v2/videos/streams-v2
Cena za udane żądanie: $0.004 (4000 kredytów).
Co najmniej jedno: video_id, video_url.
| Pole | Wymagane | Kontrakt |
|---|---|---|
video_id | Nie | string |
video_url | Nie | string |
curl --get "https://api.apihop.ai/v1/youtube/web-v2/videos/streams-v2" \
-H "Authorization: Bearer YOUR_API_KEY" \
--data-urlencode "video_id=dQw4w9WgXcQ"web_v2-get_signed_stream_url
GET https://api.apihop.ai/v1/youtube/web-v2/videos/streams/signed-url
Cena za udane żądanie: $0.001 (1000 kredytów).
Co najmniej jedno: video_id, video_url.
| Pole | Wymagane | Kontrakt |
|---|---|---|
video_id | Nie | string |
video_url | Nie | string |
itag | Tak | integer |
curl --get "https://api.apihop.ai/v1/youtube/web-v2/videos/streams/signed-url" \
-H "Authorization: Bearer YOUR_API_KEY" \
--data-urlencode "itag=18" \
--data-urlencode "video_id=dQw4w9WgXcQ"web_v2-get_video_captions
POST https://api.apihop.ai/v1/youtube/web-v2/videos/captions
Cena za udane żądanie: $0.008 (8000 kredytów).
Co najmniej jedno: video_id, video_url.
| Pole | Wymagane | Kontrakt |
|---|---|---|
video_id | Nie | string |
video_url | Nie | string |
language_code | Nie | string |
format | Nie | string; srt, xml, json3, txt; domyślnie: "srt" |
curl -X POST "https://api.apihop.ai/v1/youtube/web-v2/videos/captions" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
--data '{"format":"srt","video_id":"dQw4w9WgXcQ"}'web_v2-get_video_captions_result
GET https://api.apihop.ai/v1/youtube/web-v2/videos/captions/result
Cena za udane żądanie: $0 (0 kredytów).
| Pole | Wymagane | Kontrakt |
|---|---|---|
job_id | Tak | string; ^[1-9][0-9]{0,18}$ |
format | Nie | string; srt, xml, json3, txt; domyślnie: "srt" |
curl --get "https://api.apihop.ai/v1/youtube/web-v2/videos/captions/result" \
-H "Authorization: Bearer YOUR_API_KEY" \
--data-urlencode "job_id=9007199254740993001"web_v2-get_related_videos
GET https://api.apihop.ai/v1/youtube/web-v2/videos/related
Cena za udane żądanie: $0.001 (1000 kredytów).
Co najmniej jedno: video_id, video_url.
| Pole | Wymagane | Kontrakt |
|---|---|---|
video_id | Nie | string |
video_url | Nie | string |
need_format | Nie | boolean; domyślnie: true |
curl --get "https://api.apihop.ai/v1/youtube/web-v2/videos/related" \
-H "Authorization: Bearer YOUR_API_KEY" \
--data-urlencode "video_id=dQw4w9WgXcQ"web_v2-get_channel_shorts
GET https://api.apihop.ai/v1/youtube/web-v2/channels/shorts
Cena za udane żądanie: $0.001 (1000 kredytów).
Co najmniej jedno: channel_id, channel_url.
| Pole | Wymagane | Kontrakt |
|---|---|---|
channel_id | Nie | string |
channel_url | Nie | string |
continuation_token | Nie | string |
need_format | Nie | boolean; domyślnie: true |
curl --get "https://api.apihop.ai/v1/youtube/web-v2/channels/shorts" \
-H "Authorization: Bearer YOUR_API_KEY" \
--data-urlencode "channel_id=UCuAXFkgsw1L7xaCfnd5JJOw"web_v2-get_search_suggestions
GET https://api.apihop.ai/v1/youtube/web-v2/search/suggestions
Cena za udane żądanie: $0.001 (1000 kredytów).
| Pole | Wymagane | Kontrakt |
|---|---|---|
keyword | Tak | string; maxLength: 200 |
language | Nie | string; domyślnie: "en" |
region | Nie | string; domyślnie: "US" |
curl --get "https://api.apihop.ai/v1/youtube/web-v2/search/suggestions" \
-H "Authorization: Bearer YOUR_API_KEY" \
--data-urlencode "keyword=Rick Astley"web_v2-search_channels
GET https://api.apihop.ai/v1/youtube/web-v2/search/channels
Cena za udane żądanie: $0.001 (1000 kredytów).
Co najmniej jedno: keyword, continuation_token.
| Pole | Wymagane | Kontrakt |
|---|---|---|
keyword | Nie | string; maxLength: 200 |
continuation_token | Nie | string |
need_format | Nie | boolean; domyślnie: true |
curl --get "https://api.apihop.ai/v1/youtube/web-v2/search/channels" \
-H "Authorization: Bearer YOUR_API_KEY" \
--data-urlencode "keyword=Rick Astley"web_v2-get_channel_community_posts
GET https://api.apihop.ai/v1/youtube/web-v2/channels/posts
Cena za udane żądanie: $0.001 (1000 kredytów).
| Pole | Wymagane | Kontrakt |
|---|---|---|
channel_id | Tak | string |
language_code | Nie | string; domyślnie: "zh-CN" |
country_code | Nie | string; domyślnie: "US" |
continuation_token | Nie | string |
need_format | Nie | boolean; domyślnie: true |
curl --get "https://api.apihop.ai/v1/youtube/web-v2/channels/posts" \
-H "Authorization: Bearer YOUR_API_KEY" \
--data-urlencode "channel_id=UCkRfArvrzheW2E7b6SVT7vQ"web_v2-get_post_detail
GET https://api.apihop.ai/v1/youtube/web-v2/posts/detail
Cena za udane żądanie: $0.001 (1000 kredytów).
| Pole | Wymagane | Kontrakt |
|---|---|---|
post_id | Tak | string |
language_code | Nie | string; domyślnie: "zh-CN" |
country_code | Nie | string; domyślnie: "US" |
need_format | Nie | boolean; domyślnie: true |
curl --get "https://api.apihop.ai/v1/youtube/web-v2/posts/detail" \
-H "Authorization: Bearer YOUR_API_KEY" \
--data-urlencode "post_id=UgkxiCSRfD6g7SPlWGPDa3vbP7aIsytXRkvy"web_v2-get_post_comments
GET https://api.apihop.ai/v1/youtube/web-v2/posts/comments
Cena za udane żądanie: $0.001 (1000 kredytów).
Co najmniej jedno: post_id, continuation_token.
| Pole | Wymagane | Kontrakt |
|---|---|---|
post_id | Nie | string |
continuation_token | Nie | string |
language_code | Nie | string; domyślnie: "zh-CN" |
country_code | Nie | string; domyślnie: "US" |
need_format | Nie | boolean; domyślnie: true |
curl --get "https://api.apihop.ai/v1/youtube/web-v2/posts/comments" \
-H "Authorization: Bearer YOUR_API_KEY" \
--data-urlencode "post_id=UgkxiCSRfD6g7SPlWGPDa3vbP7aIsytXRkvy"web_v2-get_post_comment_replies
GET https://api.apihop.ai/v1/youtube/web-v2/posts/comments/replies
Cena za udane żądanie: $0.001 (1000 kredytów).
| Pole | Wymagane | Kontrakt |
|---|---|---|
continuation_token | Tak | string |
language_code | Nie | string; domyślnie: "zh-CN" |
country_code | Nie | string; domyślnie: "US" |
need_format | Nie | boolean; domyślnie: true |
curl --get "https://api.apihop.ai/v1/youtube/web-v2/posts/comments/replies" \
-H "Authorization: Bearer YOUR_API_KEY" \
--data-urlencode "continuation_token=example"web_v2-get_video_streams_v3
POST https://api.apihop.ai/v1/youtube/web-v2/videos/streams-v3
Cena za udane żądanie: $0.003 (3000 kredytów).
Stream V3 używa POST JSON przez HTTPS i kosztuje $0.003 za udane żądanie. Podaj video_id i proxy_url (http:// z jawnym portem i publicznym hostem); cele prywatne, pętli zwrotnej i link-local są zabronione. Zakoduj zastrzeżone znaki danych uwierzytelniających w URL. Użyj stałego wyjścia lub trwałej sesji proxy. itags domyślnie wynosi ["137", "140"]; niedostępne formaty kończą się błędem bez zastępowania. verify_download domyślnie wynosi false. Pobieraj przez tę samą sesję proxy i rzeczywisty publiczny adres IP wyjścia z streams[].download_headers. Udana ekstrakcja URL (HTTP 200) podlega opłacie nawet wtedy, gdy all_selected_streams_verified lub streams[].verified wynosi false. Weryfikacja próbkuje małe zakresy bajtów, a nie cały plik. Adresy URL i sesje proxy wygasają niezależnie; osobne strumienie audio i wideo połącz samodzielnie.
| Pole | Wymagane | Kontrakt |
|---|---|---|
video_id | Tak | string; ^[A-Za-z0-9_-]{11}$ |
proxy_url | Tak | string; minLength: 1; maxLength: 2048; writeOnly: true |
itags | Nie | array; items: string ^[0-9]+$; minItems: 1; maxItems: 4; uniqueItems: true; domyślnie: ["137","140"] |
verify_download | Nie | boolean; domyślnie: false |
curl -X POST "https://api.apihop.ai/v1/youtube/web-v2/videos/streams-v3" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
--data '{"video_id":"phlZ2J3x4hI","proxy_url":"http://USERNAME:PASSWORD@proxy.example.com:1000","itags":["137","140"],"verify_download":false}'Odpowiedzi
Synchroniczne punkty końcowe zachowują natywną odpowiedź JSON. Punkty końcowe napisów zwracają success, data.id, data.status, data.result i requestId. Poniższe przykłady są ilustracyjne, a nie wynikami na żywo.
{"code":200,"data":{"channel_id":"UCXuqSBlHAE6Xw-yeJA0Tunw"}}Błędy
Błędy platformy używają HTTP 400 dla nieprawidłowych parametrów, 401 dla nieprawidłowego uwierzytelnienia, 402 dla niewystarczających środków, 403 dla odmowy dostępu do bramy, 429 dla limitów częstotliwości i 5xx dla błędów usługi lub dostawcy. Zachowaj X-Request-Id do diagnozy. Nie traktuj HTTP 200 od dostawcy z kodem błędu biznesowego jako sukcesu.
Źródła
Listę punktów końcowych i ceny sprawdzono względem oficjalnego schematu i aktualnych metadanych cen 2026-10-31. Aktualne metadane mają pierwszeństwo przed sprzecznymi cenami w opisie.