Chcę uzyskać miniaturę obrazu wideo z Vimeo.
Kiedy otrzymuję obrazy z Youtube, po prostu robię to tak:
http://img.youtube.com/vi/HwP5NG-3e8I/2.jpg
Masz pomysł, jak zrobić dla Vimeo?
html
thumbnails
vimeo
Johan
źródło
źródło
Odpowiedzi:
Z dokumentacji API Vimeo Simple API :
Zgłaszanie prośby o wideo
Uzyskanie tego adresu URL http://vimeo.com/api/v2/video/6271487.xml
Analizuj to dla każdego filmu, aby uzyskać miniaturę
Oto przybliżony kod w PHP
źródło
xml
jednak na tym. Jak mogę dostaćthumbnail_small
sięphp
?thumbnail_large
z i.vimeocdn.com/video/23566238_640.webp na i.vimeocdn.com/video/23566238_640.png lub i.vimeocdn.com/video/23566238_320.jpgW javascript (używa jQuery):
Aby go wyświetlić:
źródło
$(id_img).before
i$(id_img).attr
nacreateElement
i bardziej podstawowygetElementById(id_img).src
, ale nie dostałbym go wcale, gdyby nie twój przykład.Powinieneś przeanalizować odpowiedź API Vimeo. Nie da się tego zrobić za pomocą wywołań URL (takich jak dailymotion lub youtube).
Oto moje rozwiązanie PHP:
źródło
Za pomocą żądania jQuery jsonp:
źródło
<div id='12345678' class='vimeo_thumb'></div>
- i to byłoby wypełnione miniaturą img.$.getJSON('http://vimeo.com/api/v2/video/' + video_id + '.json?callback=?', function (data) {...
Z Ruby możesz wykonać następujące czynności, powiedzmy:
źródło
require 'open-uri'
zezwolenie na otwieranie w celu analizowania identyfikatorów URI oraz plików.Oto przykład, jak zrobić to samo w ASP.NET za pomocą C #. Możesz użyć innego obrazu błędu łapania :)
UWAGA: Twoje żądanie interfejsu API powinno wyglądać tak na żądanie: http://vimeo.com/api/v2/video/32660708.xml
źródło
public static string GetVimeoPreviewImage(string id) { try { XmlDocument doc = new XmlDocument(); doc.Load("http://vimeo.com/api/v2/video/" + id + ".xml"); return doc.DocumentElement.FirstChild.SelectSingleNode("thumbnail_medium").ChildNodes[0].Value; } catch { return string.Empty; } }
Najprostszym sposobem, w jaki znalazłem miniaturę JavaScript, bez wyszukiwania identyfikatora wideo, jest:
Uwaga: jeśli ktoś chce uzyskać miniaturę wideo związaną z identyfikatorem wideo, może zastąpić
$id
identyfikator wideo i uzyskać plik XML ze szczegółami wideo:Przykład:
Źródło
źródło
$id
a otrzymasz XML ze szczegółami wideo (w tym miniatury).http://vimeo.com/api/v2/video/$id.xml
. na przykład:http://vimeo.com/api/v2/video/198340486.xml
. Źródło jest tutaj: coderwall.com/p/fdrdmg/get-a-thumbnail-from-a-vimeo-videoJeśli chcesz użyć miniatury poprzez czysty js / jquery no api, możesz użyć tego narzędzia do przechwytywania klatki z wideo i voila! Wstaw kciuk URL-a do dowolnego źródła.
Oto pióro do kodu:
Oto strona z miniaturą:
http://video.depone.eu/
źródło
Korzystając z adresu URL Vimeo ( https://player.vimeo.com/video/30572181 ), oto mój przykład
źródło
Wygląda na to, że api / v2 nie żyje.
Aby korzystać z nowego interfejsu API, musisz zarejestrować aplikację , a kod base64 koduje
client_id
iclient_secret
jako nagłówek autoryzacji.Ze względów bezpieczeństwa możesz zwrócić
client_id
iclient_secret
już zakodowane z serwera.źródło
Jest to szybki, sprytny sposób na zrobienie tego, a także sposób na wybranie niestandardowego rozmiaru.
Idę tutaj:
Pobierz plik, otwórz go i znajdź miniaturę o szerokości 640 pikseli, będzie on miał taki format:
Bierzesz link, zmieniasz 640 na, na przykład, 1400, i otrzymujesz coś takiego:
Wklej go na pasku wyszukiwania przeglądarki i ciesz się.
Twoje zdrowie,
źródło
źródło
W rzeczywistości facet, który zadał to pytanie, opublikował własną odpowiedź.
„Wygląda na to, że Vimeo chce, żebym wysłał żądanie HTTP i wyodrębnił URL miniatury z XML, który zwraca…”
Dokumenty API Vimeo znajdują się tutaj: http://vimeo.com/api/docs/simple-api
Krótko mówiąc, Twoja aplikacja musi wysłać żądanie GET na adres URL podobny do następującego:
i przeanalizuj zwrócone dane, aby uzyskać wymagany URL miniatury, a następnie pobierz plik pod tym adresem URL.
źródło
Napisałem funkcję w PHP, aby mi na to pozwolić, mam nadzieję, że będzie dla kogoś przydatna. Ścieżka do miniatury znajduje się w tagu linku na stronie filmu. Wydaje mi się, że to załatwia sprawę.
Mam nadzieję, że to pomoże każdemu.
Foggson
źródło
// poniżej funkcji przekaż adres URL miniatury.
źródło
Rozkład odpowiedzi Karthikeyana P., aby można ją było wykorzystać w szerszej gamie scenariuszy:
Stosowanie
Uzyskaj identyfikator Vimeo z adresu URL wideo Vimeo:
Uzyskaj adres URL miniatury vimeo z identyfikatora Vimeo:
https://jsfiddle.net/b9chris/nm8L8cc8/1/
źródło
AKTUALIZACJA: To rozwiązanie przestało działać od grudnia 2018 r.
Szukałem tego samego i wygląda na to, że większość odpowiedzi tutaj jest nieaktualna, ponieważ Vimeo API v2 jest przestarzałe.
mój php 2 ¢:
z powyższym otrzymasz link do domyślnej miniatury Vimeo.
Jeśli chcesz użyć obrazu o innym rozmiarze, możesz dodać coś takiego:
źródło
Jeśli nie potrzebujesz automatycznego rozwiązania, możesz znaleźć adres URL miniatury, wprowadzając identyfikator vimeo tutaj: http://video.depone.eu/
źródło
Stworzyłem CodePen, który pobiera dla ciebie obrazy.
HTML
JavaScript:
źródło
Jeśli szukasz alternatywnego rozwiązania i możesz zarządzać kontem vimeo, istnieje inny sposób, po prostu dodajesz każdy film, który chcesz pokazać do albumu, a następnie używasz interfejsu API, aby poprosić o szczegóły albumu - wyświetla wtedy wszystkie miniatury i linki . To nie jest idealne, ale może pomóc.
Punkt końcowy interfejsu API (plac zabaw)
Konwój na Twitterze z @vimeoapi
źródło
Możesz rzucić okiem na klejnot z Matt Hooks. https://github.com/matthooks/vimeo
Zapewnia proste opakowanie vimeo dla interfejsu API.
Wszystko, czego potrzebujesz, to przechowywać identyfikator_video (i dostawcę, jeśli robisz również inne witryny z filmami)
Możesz wyodrębnić identyfikator wideo vimeo w ten sposób
a jeśli potrzebujesz tuby, może ci się to przydać
źródło
Dla tych, którzy wciąż chcą uzyskać miniaturę tylko za pomocą adresu URL, podobnie jak Youtube, wbudowana mała aplikacja, która pobiera ją tylko za pomocą identyfikatora Vimeo.
Po prostu podłącz swój identyfikator wideo, a on wyciągnie go i buforuje przez 24 godziny, dzięki czemu działa szybko.
Jeśli chcesz stworzyć własną, możesz to zrobić tutaj .
Repo
źródło
Dla kogoś takiego jak ja, który ostatnio próbuje to rozgryźć,
https://i.vimeocdn.com/video/[video_id]_[dimension].webp
pracuje dla mnie.(gdzie
dimension
= 200 x 150 | 640)źródło