2009-11-19 14 views
28

Şimdi Youtube API ile oynuyorum ve küçük bir projeye başladım (eğlence için).Video Kimliği'm varsa, bir youtube videosunun başlığını nasıl alabilirim?

Sorun Id bir videonun başlığı almak için bir yol bulmak olamaz mı. (Örnek: ylLzyHk54Z0)

Ben VERİ ve OYUNCU API belgelerinde baktım ve bunu bulamıyorum.

Biri bunu yapmaya veya birisi bana bunu yapmak için bir yol bulmak yardımcı olabilir, lütfen bana yardım nasıl biliyorsa.

Not: javascript kullanıyorum. Bir web uygulaması olacak.

DÜZENLEME: Bir Fikrim var. Belki başlığı başlıktan sayfa başlığıyla ayrıştırmak için Düzenli bir açıklık kullanmak. Bunun üzerinde çalışıyorum.

+3

Bunun için RegEx veya ekran koruyucu kullanmayın! API sizin için her şeyi yapıyor ... – philfreo

cevap

35

değil tamamen mümkün javascript farklı bir etki alanından bir belgeyi almak için çalışıyoruz beri. Biraz php atmaktan memnunsanız, bunu deneyin. Tamam Test:

<? 
    $vidID = $_POST['vidID']; 
    $url = "http://gdata.youtube.com/feeds/api/videos/". $vidID; 
    $doc = new DOMDocument; 
    $doc->load($url); 
    $title = $doc->getElementsByTagName("title")->item(0)->nodeValue; 
?> 

<html> 
    <head> 
     <title>Get Video Name</title> 
    </head> 
    <body> 
     <form action="test.php" method="post"> 
      <input type="text" value="ID Here" name="vidID" /> 
      <input type="submit" value="Get Name" /> 
     </form> 
     <div id="page">URL: [<?= $url ?>]</div> 
     <div id="title">Title: [<?= $title ?>]</div> 
    </body> 
</html> 
+0

Cevabınız için teşekkür ederiz. Evet, PHP bir problem değil. Bir ajax çözümü için hazırlandım. –

+0

Evet, bazıları javascript'te farklı şekilde yapılabilir, ancak yine de bu çapraz etki alanı sorununa sahip olacaksınız ve artık olması gerekenden daha karmaşık hale getirmeye gerek yok. Eğer mutlu iseniz umarım cevabı kabul edersiniz :) – SimonDever

+2

Sadece bir güncelleme, bu şimdi [geri arama parametresini kullanarak] JavaScript ile mümkün olacaktır (http://code.google.com/apis/youtube/2.0/developers_guide_json. html). – Marcel

15

http://gdata.youtube.com/feeds/api/videos/ylLzyHk54Z0 numaralı telefonu arayın. bu XML dosyasında

, <title> etiketinin değerini okumak.

YouTube Api Documentation

+11

Artık aktif değil. –

14

Sen bir JSON isteği kullanabilirsiniz: http://gdata.youtube.com/feeds/api/videos/ylLzyHk54Z0?v=2&alt=jsonc

+11

Artık aktif değil. –

1

Benim çözümü ise:

$xmlInfoVideo = simplexml_load_file("http://gdata.youtube.com/feeds/api/videos/".$videoId."?v=2&fields=title"); 

foreach($xmlInfoVideo->children() as $title) { $videoTitle = strtoupper((string) $title); } 

Bu videonun başlığını olsun.

2

video başlığı noktalama işaretleri kullanarak JavaScript API ve ulaşılabilir içinde:

the_name_of_your_video_object.A.videoData.title 
+1

Kullanıyorum: 'video_object.getVideoData(). Title'. – cdonts

+0

@cdonts Senin yolun daha iyi çalışıyor. 'A.videoData' artık benim için çalışmıyor. – AaronS

16

Bu JavaScript ve V3 YouTube Veri API ile bunu nasıl olduğunu. Yerine http://gdata.youtube.com/feeds/api/videos/ kullanmanın

var ytApiKey = "..."; 
var videoId = "ylLzyHk54Z0"; 

$.get("https://www.googleapis.com/youtube/v3/videos?part=snippet&id=" + videoId + "&key=" + ytApiKey, function(data) { 
    alert(data.items[0].snippet.title); 
}); 
+0

Video Başlığı'ndan Video Kimliği nasıl getirilir? –

+0

Bu, API'nin v3'ten sonraki yeni doğru yanıttır. –

1

....

video yüklü varsa, başlık dahil olmak üzere video hakkında bilgi almak için oyuncu nesnenin getVideoData() yöntemini kullanabilirsiniz. Aşağıdakileri içeren bir nesne döndürecektir: video_id, yazar, başlık.

4

Bu cevap

bir YouTube video id video başlığını almak için Aralık 2015 itibarıyla doğrudur yaptığında (API anahtarını kullanmak için gerekli olan YouTube Veri API kullanarak, aşağıdaki URL'yi oluşturmak zorunda kalacak

https://www.googleapis.com/youtube/v3/videos?part=snippet&id={YOUTUBE_VIDEO_ID}&fields=items(id%2Csnippet)&key={YOUR_API_KEY}

bir gET isteği yapın ve aşağıda yığın benzer bir JSON yanıtını alacak: aksi isteği) başarısız olur. Başlık için, snippet/title anahtarında bulunur.

{ 
    "items":[ 
     { 
     "id":"Jglv0A0qLI8", 
     "snippet":{ 
      "publishedAt":"2014-06-30T03:42:20.000Z", 
      "channelId":"UCdTU5vd37FlTZ-xoB0xzRDA", 
      "title":"AIA Malaysia - A-Plus Venus Plan - Comprehensive Female Protection and Insurance Plan", 
      "description":"A comprehensive female protection plan for the modern women\n\nFor more information visit: http://www.aia.com.my/en/individuals/products-and-services/health/a-plus-venus-a-plus-venus-extra.html\n\nFor more products, visit AIA Malaysia's Products and Services playlist:\nhttps://www.youtube.com/playlist?list=PLSrgVT3aQ1fZ3SCe-dEVnFJDApBYkqolP\n\nFor more videos. subscribe to AIA Malaysia's YouTube channel:\nhttps://www.youtube.com/channel/UCdTU5vd37FlTZ-xoB0xzRDA", 
      "thumbnails":{ 
       "default":{ 
        "url":"https://i.ytimg.com/vi/Jglv0A0qLI8/default.jpg", 
        "width":120, 
        "height":90 
       }, 
       "medium":{ 
        "url":"https://i.ytimg.com/vi/Jglv0A0qLI8/mqdefault.jpg", 
        "width":320, 
        "height":180 
       }, 
       "high":{ 
        "url":"https://i.ytimg.com/vi/Jglv0A0qLI8/hqdefault.jpg", 
        "width":480, 
        "height":360 
       }, 
       "standard":{ 
        "url":"https://i.ytimg.com/vi/Jglv0A0qLI8/sddefault.jpg", 
        "width":640, 
        "height":480 
       }, 
       "maxres":{ 
        "url":"https://i.ytimg.com/vi/Jglv0A0qLI8/maxresdefault.jpg", 
        "width":1280, 
        "height":720 
       } 
      }, 
      "channelTitle":"AIA Malaysia", 
      "tags":[ 
       "aia", 
       "aia malaysia", 
       "a-plus venus", 
       "female health insurance", 
       "female life insurance", 
       "female insurance", 
       "female medical insurance" 
      ], 
      "categoryId":"27", 
      "liveBroadcastContent":"none", 
      "localized":{ 
       "title":"AIA Malaysia - A-Plus Venus Plan - Comprehensive Female Protection and Insurance Plan", 
       "description":"A comprehensive female protection plan for the modern women\n\nFor more information visit: http://www.aia.com.my/en/individuals/products-and-services/health/a-plus-venus-a-plus-venus-extra.html\n\nFor more products, visit AIA Malaysia's Products and Services playlist:\nhttps://www.youtube.com/playlist?list=PLSrgVT3aQ1fZ3SCe-dEVnFJDApBYkqolP\n\nFor more videos. subscribe to AIA Malaysia's YouTube channel:\nhttps://www.youtube.com/channel/UCdTU5vd37FlTZ-xoB0xzRDA" 
      } 
     } 
     } 
    ] 
} 

Daha fazla bilgi için, the API documentation page adresini ziyaret edin.

https://www.googleapis.com/youtube/v3/videos?part=snippet&id={YOUTUBE_VIDEO_ID}&fields=items(id,snippet)&key={YOUR_API_KEY}

bu konuda biraz şartname: Robert Sim ve cbaigorri ait

2

cevaplar bu isteği GET do JS ile şu anda bunu yapmak için doğru yolu, var, iyi idi Sen Bir istekte birden fazla video bilgisi almak için virgülle ayrılmış youtube video kimliklerini kullanabilir.

, 1 video almak Video kimliğinden (ör: 123456) ile {YOUTUBE_VIDEO_ID} değiştirmek için bir istekte daha videolara ulaşmak için , virgül kimlikleri (örn: 123456,234567,345678,456789) ayrılmış olan {YOUTUBE_VIDEO_ID} yerine

Bu tek bir istek olarak sayılır Kotalarda, bu şekilde sadece 1 kota/istek maliyeti ile çok sayıda video detayı elde edebilirsiniz.