Jeśli mam adres URL filmu na YouTube, czy jest jakiś sposób na użycie PHP i cURL, aby uzyskać powiązaną miniaturę z API YouTube?
2397
Jeśli mam adres URL filmu na YouTube, czy jest jakiś sposób na użycie PHP i cURL, aby uzyskać powiązaną miniaturę z API YouTube?
Odpowiedzi:
Każdy film na YouTube ma cztery wygenerowane obrazy. Można je sformatować w następujący sposób:
Pierwszy na liście to obraz w pełnym rozmiarze, a pozostałe to miniatury. Domyślna miniatura (czyli jeden z
1.jpg
,2.jpg
,3.jpg
) to:W przypadku wysokiej jakości wersji miniatury użyj adresu URL podobnego do tego:
Istnieje również wersja miniatury o średniej jakości, wykorzystująca adres URL podobny do centrali:
W wersji miniatury w standardowej rozdzielczości użyj adresu URL podobnego do tego:
W wersji miniatury o maksymalnej rozdzielczości użyj adresu URL podobnego do tego:
Wszystkie powyższe adresy URL są również dostępne przez HTTP. Ponadto nieco krótsza nazwa hosta
i3.ytimg.com
działa zamiastimg.youtube.com
w przykładowych adresach URL powyżej.Alternatywnie możesz użyć interfejsu YouTube Data API (v3), aby uzyskać miniatury.
źródło
http://www.img.youtube.com
, tylkohttp://img.youtube.com
mqdefault
ma 16: 9sddefault
imaxresdefault
NIE ZAWSZE SĄ DOSTĘPNE, niektóre filmy je mają ...Możesz użyć YouTube Data API do pobierania miniatur wideo, podpisów, opisów, ocen, statystyk i innych. Wersja API 3 wymaga klucza *. Zdobądź klucz i utwórz film: prośba o listę :
Przykładowy kod PHP
Wynik
* Nie tylko potrzebujesz klucza, ale możesz zostać poproszony o podanie informacji rozliczeniowych w zależności od liczby żądań interfejsu API, które planujesz złożyć. Jednak kilka milionów żądań dziennie jest bezpłatnych.
Artykuł źródłowy .
źródło
jsonc
zamiastjson
za getJSON. Nie działa z powodu złej struktury JSON.jsonc
. Przykłady jQuery i PHP MUSZĄ używaćjson
. Zaktualizowałem kod, aby był zgodny z nową strukturą JSON. Używam teraz kodu i działa on NA ŻYWO. więc nie mów, że to nie działa bez przeczytania zmian. Dzięki!v=2
) zajmuje się zmianami interfejsu API.To, co powiedział Asaph, ma rację. Jednak nie każdy film na YouTube zawiera wszystkie dziewięć miniatur. Rozmiary obrazów miniatur zależą również od filmu wideo (poniższe liczby dotyczą jednego).
Gwarantowanych jest siedem miniatur:
Ponadto dwie pozostałe miniatury mogą, ale nie muszą istnieć. Ich obecność prawdopodobnie zależy od tego, czy wideo jest wysokiej jakości.
Możesz znaleźć skrypty JavaScript i PHP do pobierania miniatur i innych informacji z YouTube w:
Możesz także użyć narzędzia YouTube Video Generator informacji , aby uzyskać wszystkie informacje o filmie YouTube, przesyłając adres URL lub identyfikator filmu.
źródło
W interfejsie API YouTube V3 możemy również używać tych adresów URL do uzyskiwania miniatur ... Są one klasyfikowane na podstawie ich jakości.
I dla maksymalnej rozdzielczości ..
Zaletą tych adresów URL w porównaniu z adresami URL w pierwszej odpowiedzi jest to, że te adresy URL nie są blokowane przez zapory ogniowe.
źródło
Jeśli chcesz mieć największy obraz z YouTube dla określonego identyfikatora wideo, adres URL powinien wyglądać mniej więcej tak:
Korzystając z interfejsu API, możesz wybrać domyślny obraz miniatury. Prosty kod powinien wyglądać mniej więcej tak:
źródło
Jeśli chcesz pozbyć się „czarnych pasków” i zrobić to tak, jak robi to YouTube, możesz użyć:
A jeśli nie możesz użyć
.webp
rozszerzenia pliku, możesz to zrobić w następujący sposób:Ponadto, jeśli potrzebujesz wersji nieskalowanej, użyj
maxresdefault
zamiastmqdefault
.Uwaga: nie jestem pewien proporcji, jeśli planujesz użyć
maxresdefault
.źródło
_webp
i zmienisz rozszerzenie na.jpg
. Przykład roboczy: i.ytimg.com/vi/mJ8tq8AnNis/mqdefault.jpg , nie jestem pewien proporcji.Stworzyłem funkcję pobierania tylko istniejących obrazów z YouTube
źródło
W YouTube Data API v3 można uzyskać miniatury wideo za pomocą funkcji wideo-> lista . Od snippet.thumbnails. (Klucz) możesz wybrać domyślną miniaturę o średniej lub wysokiej rozdzielczości oraz uzyskać jej szerokość, wysokość i adres URL.
Możesz także aktualizować miniatury za pomocą zestawu miniaturek> .
Na przykład możesz sprawdzić projekt YouTube API Samples . ( PHP ).
źródło
Możesz uzyskać wpis wideo, który zawiera adres URL miniatury filmu. W linku znajduje się przykładowy kod. Lub, jeśli chcesz parsować XML, znajdziesz tutaj informacje . Zwrócony XML zawiera
media:thumbnail
element, który zawiera adres URL miniatury.źródło
źródło
YouTube jest własnością Google, a Google lubi mieć rozsądną liczbę obrazów dla różnych rozmiarów ekranu, dlatego jego obrazy są przechowywane w różnych rozmiarach. Oto przykład tego, jak będzie wyglądać Twoja miniatura:
Miniatura niskiej jakości:
Miniatura średniej jakości:
Miniatura wysokiej jakości:
Miniatura najwyższej jakości:
źródło
YouTube API wersja 3 uruchomiona i uruchomiona za 2 minuty
Jeśli wszystko, co chcesz zrobić, to przeszukać YouTube i uzyskać powiązane właściwości:
Uzyskaj publiczny interfejs API - ten link daje dobry kierunek
Użyj poniższego ciągu zapytania. Wyszukiwane (oznaczone P = ) w ciągu URL jest StackOverflow dla celów przykładowych. YouTube prześle następnie odpowiedź JSON, w której można przeanalizować miniaturę, fragment kodu, autora itp.
https://www.googleapis.com/youtube/v3/search?part=id%2Csnippet&maxResults=50&q=stackoverflow&key=YOUR_API_KEY_HERE
źródło
Inną dobrą alternatywą byłoby użycie oEmbed interfejsu API obsługiwanego przez YouTube.
Po prostu dodajesz adres URL YouTube do adresu URL oEmbed, a otrzymasz JSON zawierający miniaturę i kod HTML do osadzenia.
Przykład:
Dałby ci:
Przeczytaj dokumentację, aby uzyskać więcej informacji .
źródło
Posługiwać się:
Powyżej znajduje się link. Korzystając z tego, możesz znaleźć cechy YouTube filmów. Po znalezieniu cech można uzyskać filmy z wybranej kategorii. Następnie możesz znaleźć wybrane obrazy wideo, korzystając z odpowiedzi Asapha .
Wypróbuj powyższe podejście i możesz przeanalizować wszystko z interfejsu API YouTube .
źródło
Użyłem miniaturek YouTube w ten sposób:
Pamiętaj, że YouTube uniemożliwia dołączanie zdjęć bezpośrednio z ich serwera.
źródło
Znalazłem to fajne narzędzie, które pozwala utworzyć obraz z przyciskiem odtwarzania YouTube umieszczonym nad obrazem:
źródło
Aby dodać / rozwinąć podane rozwiązania, uważam, że należy zauważyć, że ponieważ sam miałem ten problem, faktycznie można pobrać wiele filmów z YouTube'a, w tym przypadku miniatur, z jednym żądaniem HTTP:
Korzystając z Rest Client, w tym przypadku HTTPFUL, możesz zrobić coś takiego:
źródło
YouTube Data API
YouTube udostępnia nam cztery generowane obrazy dla każdego filmu wideo za pośrednictwem interfejsu API Data (v3), na przykład:
https://i.ytimg.com/vi/V_zwalcR8DU/maxresdefault.jpg
https://i.ytimg.com/vi/V_zwalcR8DU/sddefault.jpg
https://i.ytimg.com/vi/V_zwalcR8DU/hqdefault.jpg
https://i.ytimg.com/vi/V_zwalcR8DU/mqdefault.jpg
Uzyskiwanie dostępu do obrazów za pośrednictwem interfejsu API
W związku z tym musisz sformułować swój adres URL w ten sposób -
Teraz zmień identyfikator wideo i klucz API na odpowiedni identyfikator wideo i klucz API, a jego odpowiedzią będzie wyjście JSON zapewniające cztery linki w miniaturach zmiennej fragmentu kodu (jeśli wszystkie są dostępne).
źródło
Identyfikator wideo można uzyskać z adresu URL filmu na YouTube, używając parse_url , parse_str, a następnie wstawić go do predykcyjnych adresów URL obrazów. Dzięki YouTube za przewidywane adresy URL
Możesz użyć tego narzędzia do generowania miniatur YouTube
https://tools.tutsplanet.com/index.php/get-youtube-video-thumbnails
źródło
Prostą funkcję PHP, którą utworzyłem dla miniatury YouTube i są to typy
źródło
Jeśli używasz publicznego interfejsu API, najlepszym sposobem na to jest użycie
if
instrukcji.Jeśli film jest publiczny lub niepubliczny, ustawiasz miniaturę za pomocą metody URL. Jeśli film jest prywatny, użyj interfejsu API, aby uzyskać miniaturę.
źródło
Myślę, że są to odpowiedzi na wiele miniatur, ale chcę dodać inne adresy URL, aby bardzo łatwo uzyskać miniaturę YouTube. Właśnie pobieram tekst z odpowiedzi Asapha. Oto kilka adresów URL, aby uzyskać miniatury YouTube:
W przypadku wysokiej jakości wersji miniatury użyj adresu URL podobnego do tego:
Istnieje również wersja miniatury o średniej jakości, wykorzystująca adres URL podobny do wysokiej jakości:
W wersji miniatury w standardowej rozdzielczości użyj adresu URL podobnego do tego:
W wersji miniatury o maksymalnej rozdzielczości użyj adresu URL podobnego do tego:
źródło
źródło
Oto najlepsza odpowiedź zoptymalizowana do użycia ręcznego. Token identyfikatora wideo bez separatorów umożliwia wybranie podwójnym kliknięciem.
Każdy film na YouTube ma cztery wygenerowane obrazy. Można je sformatować w następujący sposób:
Pierwszy na liście to obraz w pełnym rozmiarze, a pozostałe to miniatury. (Tj. Jeden z domyślnym miniatura
1.jpg
,2.jpg
,3.jpg
) to:W przypadku wysokiej jakości wersji miniatury użyj adresu URL podobnego do tego:
Istnieje również wersja miniatury o średniej jakości, wykorzystująca adres URL podobny do centrali:
W wersji miniatury w standardowej rozdzielczości użyj adresu URL podobnego do tego:
W wersji miniatury o maksymalnej rozdzielczości użyj adresu URL podobnego do tego:
Wszystkie powyższe adresy URL są również dostępne przez HTTP. Dodatkowo nieco krótsza nazwa hosta
i3.ytimg.com
działa zamiastimg.youtube.com
w przykładowych adresach URL powyżej.Alternatywnie możesz użyć interfejsu YouTube Data API (v3), aby uzyskać miniatury.
źródło
Metoda 1:
Możesz znaleźć wszystkie informacje na temat filmu na YouTube ze stroną JSON, która ma nawet „thumbnail_url”, http://www.youtube.com/oembed?format=json&url= {URL twojego filmu tutaj}
Jak wygląd końcowego adresu URL + kod testowy PHP
Wynik
Aby uzyskać szczegółowe informacje, możesz także zobaczyć Jak uzyskać miniaturę filmu z YouTube za pomocą identyfikatora lub https://www.youtube.com/watch?v=mXde7q59BI8 film instruktażowy 1
Metoda 2:
Za pomocą linku do obrazu YouTube, https://img.youtube.com/vi/ „insert-youtube-video-id-here” /default.jpg
Metoda 3:
Używanie kodu źródłowego przeglądarki w celu uzyskania miniatury za pomocą linku URL wideo - przejdź do kodu źródłowego wideo i wyszukaj thumbnailurl. Teraz możesz użyć tego adresu URL w kodzie źródłowym:
Aby uzyskać szczegółowe informacje, zobacz także Jak uzyskać miniaturę wideo YouTube za pomocą identyfikatora lub https://www.youtube.com/watch?v=9f6E8MeM6PI samouczek wideo 2
źródło
https://www.youtube.com/watch?v=mXde7q59BI8
ihttps://www.youtube.com/watch?v=9f6E8MeM6PI
są (skutecznie) zepsute.Posługiwać się
img.youtube.com/vi/YouTubeID/ImageFormat.jpg
Tutaj formaty obrazów są różne, takie jak default, hqdefault, maxresdefault.
źródło
To jest moje rozwiązanie tylko po stronie klienta bez klucza API.
Kod:
Utility
image.js
:Utility
url.js
:źródło
Oto prosta funkcja, którą stworzyłem, aby uzyskać miniatury. Jest łatwy do zrozumienia i użycia.
$ link to link do YouTube skopiowany dokładnie tak, jak w przeglądarce, na przykład https://www.youtube.com/watch?v=BQ0mxQXmLsk
źródło
&t=227s
?Zapisz ten kod w pustym pliku .php i przetestuj go.
Dzięki.
źródło
źródło