2015-09-02 10 views
5

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 $linkOttieni la miniatura del video di YouTube e usalo con PHP

risposta

13

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.

+0

Grazie mille. Ha funzionato. – Mat

+0

Prego. –

-1

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 
    ) 
1

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"; 
Problemi correlati