Come posso accedere alla raccolta di miniature di un video di YouTube utilizzando il link del video dall'API di YouTube. Desidero visualizzare le miniature sul sito Web utilizzando PHP utilizzando l'ID video memorizzato in una variabile, ad esempio $link
Ottieni la miniatura del video di YouTube e usalo con PHP
risposta
YouTube memorizza diversi tipi di miniature sul proprio server per dispositivi diversi. Puoi accedervi utilizzando l'ID video che ha ogni video di YouTube. Puoi visualizzare le immagini sul tuo sito web utilizzando una variabile $link
che contiene l'id del video e la sostituisce con nella posizione per video_ID nel link.
miniature di bassa qualità:
http://img.youtube.com/vi/<YouTube_Video_ID_HERE>/sddefault.jpg
Media delle miniature di qualità:
http://img.youtube.com/vi/<YouTube_Video_ID_HERE>/mqdefault.jpg
miniature di alta qualità:
http://img.youtube.com/vi/<YouTube_Video_ID_HERE>/hqdefault.jpg
miniature massima qualità:
http://img.youtube.com/vi/<YouTube_Video_ID_HERE>/mqdefault.jpg
Esempio:
Se si desidera accedere alla miniatura del seguente video:
https://www.youtube.com/watch?v=Q-GYwhqDo6o
Video ID: Q-GYwhqDo6o
Quindi, questo è il modo in collegamento video miniature assomiglia:
http://img.youtube.com/vi/Q-GYwhqDo6o/mqdefault.jpg
Spero che aiuti. Goditi la programmazione.
Google ha cambiato API su v.3 e quei codici da Python funzionano esattamente! Puoi usare per PHP.
def get_small_image_url(self):
return 'http://img.youtube.com/vi/%s/%s.jpg' % (self.video_id, random.randint(1, 3))
def get_hqdefault(self):
return 'http://i1.ytimg.com/vi/%s/hqdefault.jpg' % self.video_id
def get_mqdefault(self):
return 'http://i1.ytimg.com/vi/%s/mqdefault.jpg' % self.video_id
def get_sddefault(self):
return 'http://i1.ytimg.com/vi/%s/sddefault.jpg' % self.video_id
def get_video_id(self, url):
link = urlparse.urlparse(url)
if link.hostname == 'youtu.be':
return link.path[1:]
if link.hostname in ('www.youtube.com', 'youtube.com'):
if link.path == '/watch':
state = urlparse.parse_qs(link.query)
return state['v'][0]
if link.path[:7] == '/embed/':
return link.path.split('/')[2]
if link.path[:3] == '/v/':
return link.path.split('/')[2]
return False
def get_meta(self, video_id):
api_token = **'here your API_Token'**
url = 'https://www.googleapis.com/youtube/v3/videos?part=snippet&id=%s&key=%s' % (video_id, api_token)
response = json.load(urllib.urlopen(url))
print response
context = {
'title': response['items'][0]['snippet']['localized']['title'],
'desc': response['items'][0]['snippet']['localized']['description']
}
return context
def save(self, force_insert=False, force_update=False, using=None,
update_fields=None):
video_id = self.get_video_id(self.url)
meta = self.get_meta(video_id)
self.video_id = video_id
self.title = meta['title']
self.description = meta['desc']
super(Videos, self).save(
force_insert=force_insert,
force_update=force_update,
using=using,
update_fields=update_fields
)
Per ottenere immagini di alta qualità è possibile utilizzare il seguente URL, che viene prelevato da YouTube API
$video_id = explode("?v=", $link);
$video_id = $video_id[1];
$thumbnail="http://img.youtube.com/vi/".$video_id."/maxresdefault.jpg";
Grazie mille. Ha funzionato. – Mat
Prego. –