This post comes from the first version of this blog.
Please send me an email if anything needs an update. Thanks!

Praca programisty nie zawsze polega na rozwiązywaniu zaawansowanych problemów programistycznych, czy też tworzeniu złożonych algorytmów przeliczających niewyobrażalne zbiory danych. Czasem potrzebujemy zwyczajnych, prostych, czasem wręcz trywialnych rozwiązań dla problemów naszych klientów. Ostatnio zetknąłem się z jednym z takich problemów - pobieraniem miniaturek do filmów wstawianych poprzez element

Jak widać, animacja wstawiła się bardzo ładnie, ale co z miniaturką?

Kiedy pierwszy raz pomyślałem o rozwiązaniu tego problemu, zmartwiłem się, że pewnie trzeba będzie znowu użyć jakiegoś API, żeby zrobić teoretycznie prostą rzecz. Okazuje się jednak, że nie jest aż tak źle. Na początku musimy wyciągnąć z adresu identyfikator wideo w systemie. Biorąc pod uwagę to, że nasz URL wideo wygląda następująco:

http://www.youtube.com/embed/Afx85mWjwZA
nie będzie to specjalnie trudne. Wystarczy użyć wyrażenia regularnego, ew. skorzystać z następującego kodu:
1
2
$url = 'http://www.youtube.com/embed/Afx85mWjwZA';
$imgPath = substr($url, strrpos($url, '/') + 1, strlen($url));

i mamy już nasz identyfikator [Afx85mWjwZA] zapisany w zmiennej $imgPath.

Teraz wystarczy użyć następujących adresów URL, aby bezproblemowo uzyskać miniaturki dowolnych wielkości [ID to nasz identyfikator]:

Mała miniaturka [120x90]:

http://img.youtube.com/vi/ID/default.jpg

[lub]

http://img.youtube.com/vi/ID/1.jpg

Duża miniaturka [320x240]:

http://img.youtube.com/vi/ID/0.jpg

Możemy też użyć plików 2.jpg i 3.jpg, które zawierają kolejne zrzuty ekranu z danego filmu.

Mam nadzieję, że dzięki tak prostej informacji wstawianie miniaturek na stronach internetowych stanie się o wiele prostsze. Nie będziecie też musieli szukać rozwiązania nigdzie indziej. ;]