मुझे YouTube API से YouTube वीडियो थंबनेल कैसे मिलेगा?


2397

अगर मेरे पास YouTube वीडियो URL है, तो क्या YouTube API से संबद्ध थंबनेल प्राप्त करने के लिए PHP और cURL का उपयोग करने का कोई तरीका है?


इस पृष्ठ पर कई अच्छे उत्तरों के आधार पर, URL विधि w / o pinging API से उपलब्ध सर्वश्रेष्ठ थंबनेल प्राप्त करने के लिए मैंने यहां कुछ PHP फ़ंक्शन दिए हैं: gist.github.com/squarecandy/30ec9f6779790e8cdf12e337c665d96c5
squarecandy

जवाबों:


4607

प्रत्येक YouTube वीडियो में चार उत्पन्न चित्र हैं। वे अनुमानित रूप से निम्नानुसार स्वरूपित हैं:

https://img.youtube.com/vi/<insert-youtube-video-id-here>/0.jpg
https://img.youtube.com/vi/<insert-youtube-video-id-here>/1.jpg
https://img.youtube.com/vi/<insert-youtube-video-id-here>/2.jpg
https://img.youtube.com/vi/<insert-youtube-video-id-here>/3.jpg

सूची में पहला पूर्ण आकार की छवि है और अन्य थंबनेल छवियां हैं। डिफ़ॉल्ट थंबनेल छवि (यानी, में से एक 1.jpg, 2.jpg, 3.jpg) है:

https://img.youtube.com/vi/<insert-youtube-video-id-here>/default.jpg

थंबनेल के उच्च गुणवत्ता वाले संस्करण के लिए इसके समान URL का उपयोग करें:

https://img.youtube.com/vi/<insert-youtube-video-id-here>/hqdefault.jpg

मुख्यालय के समान URL का उपयोग करते हुए, थंबनेल का एक मध्यम गुणवत्ता संस्करण भी है:

https://img.youtube.com/vi/<insert-youtube-video-id-here>/mqdefault.jpg

थंबनेल के मानक परिभाषा संस्करण के लिए, इसके समान URL का उपयोग करें:

https://img.youtube.com/vi/<insert-youtube-video-id-here>/sddefault.jpg

थंबनेल के अधिकतम रिज़ॉल्यूशन संस्करण के लिए इसके समान URL का उपयोग करें:

https://img.youtube.com/vi/<insert-youtube-video-id-here>/maxresdefault.jpg

उपरोक्त सभी URL HTTP पर भी उपलब्ध हैं। इसके अतिरिक्त, थोड़ा छोटा होस्टनाम ऊपर के उदाहरण URL i3.ytimg.comमें जगह के लिए काम करता है img.youtube.com

वैकल्पिक रूप से, आप थंबनेल डेटा प्राप्त करने के लिए YouTube डेटा API (v3) का उपयोग कर सकते हैं ।


27
बस अगर कोई और इस गूंगा गलती करता है - आप का उपयोग नहीं कर सकते हैं http://www.img.youtube.com, केवलhttp://img.youtube.com
सिरेन फिलिप्स

36
@ निकग mqdefault16: 9
टोमटैस्टो

56
क्या यह कहीं आधिकारिक रूप से प्रलेखित है?
bjunix

14
उच्च रिज़ॉल्यूशन थंबनेल मौजूद होने की गारंटी नहीं है।
सलमान ए

63
@ clami219 जो कि असत्य भी है - स्पष्ट रूप से काम करता है (2015-04): i.ytimg.com/vi_webp/EhjdWfxjuHA/sddefault.webp , सच्चाई: sddefaultऔर maxresdefaultअभी कुछ वीडियो उपलब्ध नहीं हैं, हालांकि उनके पास कुछ भी हैं ....
jave.web

398

वीडियो थंबनेल, कैप्शन, विवरण, रेटिंग, आंकड़े और अधिक प्राप्त करने के लिए आप YouTube डेटा एपीआई का उपयोग कर सकते हैं । एपीआई संस्करण 3 को एक कुंजी * की आवश्यकता होती है। कुंजी प्राप्त करें और एक वीडियो बनाएं : सूची अनुरोध:

https://www.googleapis.com/youtube/v3/videos?key=YOUR_API_KEY&part=snippet&id=VIDEO_ID

उदाहरण PHP कोड

$data = file_get_contents("https://www.googleapis.com/youtube/v3/videos?key=YOUR_API_KEY&part=snippet&id=T0Jqdjbed40");
$json = json_decode($data);
var_dump($json->items[0]->snippet->thumbnails);

उत्पादन

object(stdClass)#5 (5) {
  ["default"]=>
  object(stdClass)#6 (3) {
    ["url"]=>
    string(46) "https://i.ytimg.com/vi/T0Jqdjbed40/default.jpg"
    ["width"]=>
    int(120)
    ["height"]=>
    int(90)
  }
  ["medium"]=>
  object(stdClass)#7 (3) {
    ["url"]=>
    string(48) "https://i.ytimg.com/vi/T0Jqdjbed40/mqdefault.jpg"
    ["width"]=>
    int(320)
    ["height"]=>
    int(180)
  }
  ["high"]=>
  object(stdClass)#8 (3) {
    ["url"]=>
    string(48) "https://i.ytimg.com/vi/T0Jqdjbed40/hqdefault.jpg"
    ["width"]=>
    int(480)
    ["height"]=>
    int(360)
  }
  ["standard"]=>
  object(stdClass)#9 (3) {
    ["url"]=>
    string(48) "https://i.ytimg.com/vi/T0Jqdjbed40/sddefault.jpg"
    ["width"]=>
    int(640)
    ["height"]=>
    int(480)
  }
  ["maxres"]=>
  object(stdClass)#10 (3) {
    ["url"]=>
    string(52) "https://i.ytimg.com/vi/T0Jqdjbed40/maxresdefault.jpg"
    ["width"]=>
    int(1280)
    ["height"]=>
    int(720)
  }
}

* इतना ही नहीं कि आपको एक कुंजी की आवश्यकता है, आपको आपके द्वारा बनाई जाने वाली एपीआई अनुरोधों की संख्या के आधार पर बिलिंग जानकारी के लिए कहा जा सकता है। हालांकि, प्रति दिन कुछ मिलियन अनुरोध मुफ्त हैं।

स्रोत लेख


6
FYI करें: मैंने नई JSON संरचना को फिट करने के लिए कोड नहीं बदला। आपके getJSON में कोड गलत है। आपने getJSON के jsoncबजाय उपयोग किया है json। यह आपकी गलत JSON संरचना के कारण विफल हो रहा है।
मौरिस

5
केवल पहला उदाहरण उपयोग कर सकते हैं jsonc। JQuery और PHP उदाहरणों का उपयोग करना चाहिएjson । और मैंने नई JSON संरचना के अनुरूप कोड को अपडेट किया है। मैं अभी कोड का उपयोग कर रहा हूं और यह LIVE काम कर रहा है। इसलिए यह मत कहो कि यह बदलावों को पढ़े बिना काम नहीं कर रहा है। धन्यवाद!
मौरीस

7
JQuery और PHP उदाहरण के लिए json का उपयोग करना चाहिए ... क्या आप एक संदर्भ प्रदान कर सकते हैं? इसके अलावा, एक विशिष्ट एपीआई संस्करण संख्या का अनुरोध ( v=2) एपीआई परिवर्तनों का ध्यान रखता है।
सलमान ए

4
Gdata कॉल वापस नहीं आती है कि क्या maxresdefault.jpg उन वीडियो के लिए उपलब्ध है जहाँ यह उपलब्ध है, केवल mq / hq / sd।
आरोन

2
API v3 बहुत बुरी तरह से प्रलेखित है। वे आपको नमूना कोड देते हैं लेकिन "संदर्भ" खंड विस्तार से बहुत कम है। कुछ चीजें जो अपेक्षाकृत "स्पष्ट" होनी चाहिए, उन्हें चरम वर्कअराउंड की आवश्यकता होती है।
कैशबैक

256

असफ ने जो कहा वह सही है। हालाँकि, हर YouTube वीडियो में सभी नौ थंबनेल नहीं होते हैं। साथ ही, थंबनेल की छवि का आकार वीडियो पर निर्भर करता है (नीचे की संख्या एक पर आधारित होती है)।

अस्तित्व के लिए सात थंबनेल की गारंटी है:

| Thumbnail Name      | Size (px) | URL                                              |
|---------------------|-----------|--------------------------------------------------|
| Player Background   | 480x360   | https://i1.ytimg.com/vi/<VIDEO ID>/0.jpg         |
| Start               | 120x90    | https://i1.ytimg.com/vi/<VIDEO ID>/1.jpg         |
| Middle              | 120x90    | https://i1.ytimg.com/vi/<VIDEO ID>/2.jpg         |
| End                 | 120x90    | https://i1.ytimg.com/vi/<VIDEO ID>/3.jpg         |
| High Quality        | 480x360   | https://i1.ytimg.com/vi/<VIDEO ID>/hqdefault.jpg |
| Medium Quality      | 320x180   | https://i1.ytimg.com/vi/<VIDEO ID>/mqdefault.jpg |
| Normal Quality      | 120x90    | https://i1.ytimg.com/vi/<VIDEO ID>/default.jpg   |

इसके अतिरिक्त, दो अन्य थंबनेल मौजूद हो सकते हैं या नहीं भी। उनकी उपस्थिति संभवतः इस बात पर आधारित है कि वीडियो उच्च-गुणवत्ता वाला है या नहीं।

| Thumbnail Name      | Size (px) | URL                                                  |
|---------------------|-----------|------------------------------------------------------|
| Standard Definition | 640x480   | https://i1.ytimg.com/vi/<VIDEO ID>/sddefault.jpg     |
| Maximum Resolution  | 1920x1080 | https://i1.ytimg.com/vi/<VIDEO ID>/maxresdefault.jpg |

आप थंबनेल और अन्य YouTube जानकारी प्राप्त करने के लिए जावास्क्रिप्ट और PHP स्क्रिप्ट पा सकते हैं:

आप YouTube वीडियो सूचना जेनरेटर टूल का उपयोग करके URL या वीडियो आईडी सबमिट करके YouTube वीडियो के बारे में सभी जानकारी प्राप्त कर सकते हैं ।


5
आप आधिकारिक YouTube लिंक img.youtube.com/vi/mJ8tq8AnNis/mqdefault.jpg पर भी परिणाम प्राप्त कर सकते हैं, जहाँ mJ8tq8AnNis वीडियो आईडी है
रागाइसिस

4
कभी-कभी कुछ निश्चित रूप से मौजूद नहीं होते हैं - i1.ytimg.com/vi/r5R8gSgedh4/maxresdefault.jpg फर्जी है, हालांकि i1.ytimg.com/vi/r5R8gSgedh4/0/jpg उदाहरण के लिए ठीक है।
NoBugs

इसे पोस्ट करने के लिए धन्यवाद। क्या आपके पास इस डेटा का स्रोत है? यह सही है, लेकिन मैं इस पर Youtube / Google की किसी चीज़ का लिंक चाहूंगा और उसे पा नहीं सकता।
जोनाथन वानास्को

@JonathanVanasco, क्षमा करें। यदि आपके पास सटीक सामग्री के लिए आधिकारिक संसाधन हैं, तो मुझे कोई जानकारी नहीं है। और मुझे नहीं लगता कि उनके दृष्टिकोण से ऐसा कुछ प्रकाशित करने का कोई उद्देश्य है।
एजीएमजी जूल

4
उपकरण "YouTube वीडियो सूचना जेनरेटर" वर्तमान में काम नहीं कर रहा है। उत्तर को संपादित करने पर विचार करें।
ग्वेनिअनपड्स

74

YouTube API V3 में हम इन URL का उपयोग थंबनेल प्राप्त करने के लिए भी कर सकते हैं ... इन्हें उनकी गुणवत्ता के आधार पर वर्गीकृत किया गया है।

https://i1.ytimg.com/vi/<insert-youtube-video-id-here>/default.jpg -   default
https://i1.ytimg.com/vi/<insert-youtube-video-id-here>/mqdefault.jpg - medium 
https://i1.ytimg.com/vi/<insert-youtube-video-id-here>/hqdefault.jpg - high
https://i1.ytimg.com/vi/<insert-youtube-video-id-here>/sddefault.jpg - standard

और अधिकतम संकल्प के लिए ।।

https://i1.ytimg.com/vi/<insert-youtube-video-id-here>/maxresdefault.jpg

पहले उत्तर में URL पर इन URL का एक फायदा यह है कि ये URL फ़ायरवॉल द्वारा अवरुद्ध नहीं होते हैं।


3
क्या यह माना जाता है कि इन छवियों को एक img टैग में रखा जाना चाहिए और सिर्फ इसलिए काम करना चाहिए क्योंकि मैं सही youtube वीडियो आईडी के साथ लिंक को शामिल करने की कोशिश कर रहा हूं और उन्हें img टैग के भीतर डाल देता हूं, लेकिन मुझे 404 मिल रहा है
Lion789

5
@ Lion789 यह URL तब ठीक काम करता है जब इसे img टैग में रखा जाता है। समस्या एक गलत वीडियो आईडी हो सकती है या अनुरोधित रिज़ॉल्यूशन उपलब्ध नहीं हो सकती है, लेकिन आपको इन त्रुटियों के साथ 404 नहीं मिलेगा। कृपया url की जाँच करें img टैग।
नरेन

2
क्या यह पुष्टि की गई है कि API v2 को रोकने के बाद भी url काम करता रहेगा?
डेनिएल बी

1
@DanieleB ये URL अभी भी काम कर रहे हैं। क्या आप जानते हैं कि एपीआई v2 के बाद ये URL कैसे काम करेगा?
नरेन

53

यदि आप किसी विशिष्ट वीडियो आईडी के लिए YouTube से सबसे बड़ी छवि चाहते हैं, तो URL कुछ इस तरह होना चाहिए:

http://i3.ytimg.com/vi/SomeVideoIDHere/0.jpg

एपीआई का उपयोग करके, आप डिफ़ॉल्ट थंबनेल छवि उठा सकते हैं। सरल कोड कुछ इस तरह होना चाहिए:

//Grab the default thumbnail image
$attrs = $media->group->thumbnail[1]->attributes();
$thumbnail = $attrs['url'];
$thumbnail = substr($thumbnail, 0, -5);
$thumb1 = $thumbnail."default.jpg";

// Grab the third thumbnail image
$thumb2 = $thumbnail."2.jpg";

// Grab the fourth thumbnail image.
$thumb3 = $thumbnail."3.jpg";

// Using simple cURL to save it your server.
// You can extend the cURL below if you want it as fancy, just like
// the rest of the folks here.

$ch = curl_init ("$thumb1");
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_BINARYTRANSFER,1);
$rawdata = curl_exec($ch);
curl_close($ch);

// Using fwrite to save the above
$fp = fopen("SomeLocationInReferenceToYourScript/AnyNameYouWant.jpg", 'w');

// Write the file
fwrite($fp, $rawdata);

// And then close it.
fclose($fp);

2
मुझे एक उदाहरण मिला जहाँ 0.jpg का 480x360 का रिज़ॉल्यूशन है, जबकि maxresdefault.jpg का 1280x720
Nico Haase

45

यदि आप "ब्लैक बार" से छुटकारा पाना चाहते हैं और इसे ऐसे करें जैसे YouTube करता है, तो आप इसका उपयोग कर सकते हैं:

https://i.ytimg.com/vi_webp/<video id>/mqdefault.webp

और अगर आप .webpफ़ाइल एक्सटेंशन का उपयोग नहीं कर सकते हैं तो आप इसे इस तरह कर सकते हैं:

https://i.ytimg.com/vi/<video id>/mqdefault.jpg

इसके अलावा, अगर आपको बिना बिके हुए संस्करण की आवश्यकता है, तो इसके maxresdefaultबजाय का उपयोग करेंmqdefault

नोट: यदि आप उपयोग करने की योजना बना रहे हैं, तो मुझे पहलू अनुपात के बारे में निश्चित नहीं है maxresdefault


2
यह कई वीडियो के लिए उपलब्ध नहीं है। उदाहरण के लिए: i.ytimg.com/vi_webp/mJ8tq8AnNis/mqdefault.webp
NickG

2
@NickG: यदि आप _webpएक्सटेंशन को हटाते हैं और बदलते हैं तो यह काम करता है .jpg। कार्य उदाहरण: i.ytimg.com/vi/mJ8tq8AnNis/mqdefault.jpg , मैं पहलू अनुपात के बारे में निश्चित नहीं हूँ।
लुत्ज़

34

मैंने YouTube से केवल मौजूदा छवियों को लाने के लिए एक फ़ंक्शन बनाया

function youtube_image($id) {
    $resolution = array (
        'maxresdefault',
        'sddefault',
        'mqdefault',
        'hqdefault',
        'default'
    );

    for ($x = 0; $x < sizeof($resolution); $x++) {
        $url = '//img.youtube.com/vi/' . $id . '/' . $resolution[$x] . '.jpg';
        if (get_headers($url)[0] == 'HTTP/1.0 200 OK') {
            break;
        }
    }
    return $url;
}

32

में YouTube डेटा API v3 , आप के साथ वीडियो के थंबनेल प्राप्त कर सकते हैं वीडियो-> सूची कार्य करते हैं। से snippet.thumbnails। (Key) , आप डिफ़ॉल्ट, मध्यम या उच्च संकल्प थंबनेल चुनें, और इसकी चौड़ाई, ऊंचाई और URL प्राप्त कर सकते हैं।

आप थंबनेल-> सेट के साथ थंबनेल भी अपडेट कर सकते हैं कार्यक्षमता के ।

उदाहरण के लिए, आप YouTube API नमूने परियोजना की जांच कर सकते हैं । ( PHP वाले ।)


1
मुझे लगता है कि ऐसा करने का यह सही तरीका है क्योंकि यह यूट्यूब एपीआई के लिए Google देव संबंधों के सदस्य से आ रहा है
एडोनिस के। काकोलीडिस

31

आप वीडियो प्रविष्टि प्राप्त कर सकते हैं जिसमें वीडियो के थंबनेल का URL है। लिंक में उदाहरण कोड है। या, यदि आप XML को पार्स करना चाहते हैं, तो यहां जानकारी है । एक्सएमएल रिटर्न में एक media:thumbnailतत्व होता है, जिसमें थंबनेल का यूआरएल होता है।


2
मैं simpleXML का उपयोग कर इसे प्राप्त करने में असमर्थ हूं। यह काफी कठिन है!
आदित्य मप्र

25
// Get image form video URL
$url = $video['video_url'];

$urls = parse_url($url);

//Expect the URL to be http://youtu.be/abcd, where abcd is the video ID
if ($urls['host'] == 'youtu.be') :

    $imgPath = ltrim($urls['path'],'/');

//Expect the URL to be http://www.youtube.com/embed/abcd
elseif (strpos($urls['path'],'embed') == 1) :

    $imgPath = end(explode('/',$urls['path']));

//Expect the URL to be abcd only
elseif (strpos($url,'/') === false):

    $imgPath = $url;

//Expect the URL to be http://www.youtube.com/watch?v=abcd
else :

    parse_str($urls['query']);

    $imgPath = $v;

endif;

2
यह एक बुरा समाधान है! Youtube api v3 का उपयोग क्यों न करें?
एम.पी.ग्गन

19

YouTube Google के स्वामित्व में है और Google को विभिन्न स्क्रीन आकारों के लिए उचित संख्या में चित्र पसंद हैं, इसलिए इसकी छवियां विभिन्न आकारों में संग्रहीत हैं। यहाँ एक उदाहरण दिया गया है कि आपका थंबनेल कैसा होगा:

निम्न गुणवत्ता थंबनेल:

http://img.youtube.com/vi/<YouTube_Video_ID_HERE>/sddefault.jpg

मध्यम गुणवत्ता थंबनेल:

http://img.youtube.com/vi/<YouTube_Video_ID_HERE>/mqdefault.jpg

उच्च गुणवत्ता थंबनेल:

http://img.youtube.com/vi/<YouTube_Video_ID_HERE>/hqdefault.jpg

अधिकतम गुणवत्ता थंबनेल:

http://img.youtube.com/vi/<YouTube_Video_ID_HERE>/maxresdefault.jpg

16

YouTube API संस्करण 3 अप और 2 मिनट में चल रहा है

यदि आप सब करना चाहते हैं तो YouTube खोजें और संबद्ध गुण प्राप्त करें:

  1. एक सार्वजनिक एपीआई प्राप्त करें - यह लिंक एक अच्छी दिशा देता है

  2. नीचे क्वेरी स्ट्रिंग का उपयोग करें। खोज प्रश्न (जो चिह्नित q = URL स्ट्रिंग में) है stackoverflow उदाहरण प्रयोजनों के लिए। YouTube फिर आपको एक JSON उत्तर भेजेगा जहां आप तब थंबनेल, स्निपेट, लेखक, आदि के लिए पार्स कर सकते हैं।

    https://www.googleapis.com/youtube/v3/search?part=id%2Csnippet&maxResults=50&q=stackoverflow&key=YOUR_API_KEY_HERE


16

एक और अच्छा विकल्प oEmbed API का उपयोग करना होगा जो YouTube द्वारा समर्थित है।

आप बस अपने YouTube URL को oEmbed URL में जोड़ते हैं और आपको एम्बेड करने के लिए थंबनेल और HTML कोड सहित एक JSON प्राप्त होगा।

उदाहरण:

http://www.youtube.com/oembed?format=json&url=http%3A//youtube.com/watch%3Fv%3DxUeJdWYdMmQ

आपको देंगे:

{
  "height":270,
  "width":480,
  "title":"example video for 2020",
  "thumbnail_width":480,
  "html":"...",
  "thumbnail_height":360,
  "version":"1.0",
  "provider_name":"YouTube",
  "author_url":"https:\/\/www.youtube.com\/channel\/UCza6VSQUzCON- AzlsrOLwaA",
  "thumbnail_url":"https:\/\/i.ytimg.com\/vi\/xUeJdWYdMmQ\/hqdefault.jpg",
  "author_name":"Pokics",
  "provider_url":"https:\/\/www.youtube.com\/",
  "type":"video"
}

अधिक जानकारी के लिए प्रलेखन पढ़ें ।


15

उपयोग:

https://www.googleapis.com/youtube/v3/videoCategories?part=snippet,id&maxResults=100&regionCode=us&key=**Your YouTube ID**

ऊपर लिंक है। इसका उपयोग करके, आप वीडियो की YouTube विशेषताओं को पा सकते हैं। विशेषताओं को खोजने के बाद, आप चयनित श्रेणी के वीडियो प्राप्त कर सकते हैं। उसके बाद आप आसफ के उत्तर का उपयोग करके चयनित वीडियो चित्र पा सकते हैं

उपरोक्त दृष्टिकोण का प्रयास करें और आप YouTube API से सब कुछ पार्स कर सकते हैं ।


14

मैंने इस तरह से YouTube थंबनेल का उपयोग किया है:

$url = 'http://img.youtube.com/vi/' . $youtubeId . '/0.jpg';
$img = dirname(__FILE__) . '/youtubeThumbnail_'  . $youtubeId . '.jpg';
file_put_contents($img, file_get_contents($url));

याद रखें YouTube अपने सर्वर से सीधे छवियों को शामिल करने से रोकता है।



13

बस दिए गए समाधानों को जोड़ने / विस्तार करने के लिए, मुझे लगता है कि यह ध्यान रखना आवश्यक है, जैसा कि मुझे स्वयं यह समस्या थी, कोई वास्तव में कई YouTube वीडियो सामग्री को हड़प सकता है, इस मामले में, एक HTTP अनुरोध के साथ थंबनेल:

रेस्ट क्लाइंट का उपयोग करते हुए, इस मामले में, HTTPFUL, आप कुछ इस तरह से कर सकते हैं:

<?php
header("Content-type", "application/json");

//download the httpfull.phar file from http://phphttpclient.com
include("httpful.phar");

$youtubeVidIds= array("nL-rk4bgJWU", "__kupr7KQos", "UCSynl4WbLQ", "joPjqEGJGqU", "PBwEBjX3D3Q");


$response = \Httpful\Request::get("https://www.googleapis.com/youtube/v3/videos?key=YourAPIKey4&part=snippet&id=".implode (",",$youtubeVidIds)."")

->send();

print ($response);

?>

13

YouTube डेटा API

YouTube हमें डेटा API (v3) के माध्यम से प्रत्येक वीडियो के लिए चार जेनरेट की गई छवियां प्रदान करता है, उदाहरण के लिए,

  1. https://i.ytimg.com/vi/V_zwalcR8DU/maxresdefault.jpg

  2. https://i.ytimg.com/vi/V_zwalcR8DU/sddefault.jpg

  3. https://i.ytimg.com/vi/V_zwalcR8DU/hqdefault.jpg

  4. https://i.ytimg.com/vi/V_zwalcR8DU/mqdefault.jpg

एपीआई के माध्यम से छवियों तक पहुंच प्राप्त करना

  1. सबसे पहले Google API कंसोल पर अपनी सार्वजनिक एपीआई कुंजी प्राप्त करें
  2. एपीआई प्रलेखन में YouTube के थंबनेल संदर्भ के अनुसार , आपको snippet.thumbnails पर संसाधनों का उपयोग करने की आवश्यकता है।
  3. इसके अनुसार, आपको अपने URL को इस तरह वाक्यांशित करना होगा -

    www.googleapis.com/youtube/v3/videos?part=snippet&id=`yourVideoId`&key=`yourApiKey`

अब अपने वीडियो आईडी और एपीआई कुंजी को अपने संबंधित वीडियो-आईडी और एपी-की में बदलें और इसकी प्रतिक्रिया एक JSON आउटपुट होगी जो आपको स्निपेट चर के थंबनेल में चार लिंक प्रदान करेगा (यदि सभी उपलब्ध हैं)।


13

आप parse_url , parse_str का उपयोग करके YouTube वीडियो url से वीडियो आईडी प्राप्त कर सकते हैं और फिर छवियों के लिए पूर्वानुमानित यूआरएल में सम्मिलित कर सकते हैं। प्रेडिक्टिव URL के लिए YouTube का धन्यवाद

$videoUrl = "https://www.youtube.com/watch?v=8zy7wGbQgfw";
parse_str( parse_url( $videoUrl, PHP_URL_QUERY ), $my_array_of_vars );
$ytID = $my_array_of_vars['v']; //gets video ID

print "https://img.youtube.com/vi/$ytID/maxresdefault.jpg";
print "https://img.youtube.com/vi/$ytID/mqdefault.jpg";
print "https://img.youtube.com/vi/$ytID/hqdefault.jpg";
print "https://img.youtube.com/vi/$ytID/sddefault.jpg";
print "https://img.youtube.com/vi/$ytID/default.jpg";

YouTube थंबनेल बनाने के लिए आप इस टूल का उपयोग कर सकते हैं

https://tools.tutsplanet.com/index.php/get-youtube-video-thumbnails


11

एक साधारण PHP फ़ंक्शन जिसे मैंने YouTube थंबनेल के लिए बनाया है और प्रकार हैं

  • चूक
  • hqdefault
  • mqdefault
  • sddefault
  • maxresdefault

 

function get_youtube_thumb($link,$type){

    $video_id = explode("?v=", $link);

    if (empty($video_id[1])){
        $video_id = explode("/v/", $link);
        $video_id = explode("&", $video_id[1]);
        $video_id = $video_id[0];
    }
    $thumb_link = "";

    if($type == 'default'   || $type == 'hqdefault' ||
       $type == 'mqdefault' || $type == 'sddefault' ||
       $type == 'maxresdefault'){

        $thumb_link = 'http://img.youtube.com/vi/'.$video_id.'/'.$type.'.jpg';

    }elseif($type == "id"){
        $thumb_link = $video_id;
    }
    return $thumb_link;}

10

यदि आप सार्वजनिक एपीआई का उपयोग कर रहे हैं, तो इसे करने का सबसे अच्छा तरीका ifबयानों का उपयोग करना है ।

यदि वीडियो सार्वजनिक या असूचीबद्ध है, तो आप URL विधि का उपयोग करके थंबनेल सेट करते हैं। यदि वीडियो निजी है तो आप थंबनेल प्राप्त करने के लिए एपीआई का उपयोग करते हैं।

<?php
    if($video_status == 'unlisted'){
        $video_thumbnail = 'http://img.youtube.com/vi/'.$video_url.'/mqdefault.jpg';
        $video_status = '<i class="fa fa-lock"></i>&nbsp;Unlisted';
    }
    elseif($video_status == 'public'){
        $video_thumbnail = 'http://img.youtube.com/vi/'.$video_url.'/mqdefault.jpg';
        $video_status = '<i class="fa fa-eye"></i>&nbsp;Public';
    }
    elseif($video_status == 'private'){
        $video_thumbnail = $playlistItem['snippet']['thumbnails']['maxres']['url'];
        $video_status = '<i class="fa fa-lock"></i>&nbsp;Private';
    }

8

मुझे लगता है कि उनके थंबनेल के लिए बहुत सारे उत्तर हैं, लेकिन मैं YouTube थंबनेल को बहुत आसानी से प्राप्त करने के लिए कुछ अन्य URL जोड़ना चाहता हूं। मैं सिर्फ आसफ के जवाब से कुछ पाठ ले रहा हूं। YouTube थंबनेल पाने के लिए यहां कुछ URL दिए गए हैं:

https://ytimg.googleusercontent.com/vi/<insert-youtube-video-id-here>/default.jpg

थंबनेल के उच्च गुणवत्ता वाले संस्करण के लिए इसके समान URL का उपयोग करें:

https://ytimg.googleusercontent.com/vi/<insert-youtube-video-id-here>/hqdefault.jpg

उच्च गुणवत्ता के समान URL का उपयोग करते हुए, थंबनेल का एक मध्यम गुणवत्ता संस्करण भी है:

https://ytimg.googleusercontent.com/vi/<insert-youtube-video-id-here>/mqdefault.jpg

थंबनेल के मानक परिभाषा संस्करण के लिए, इसके समान URL का उपयोग करें:

https://ytimg.googleusercontent.com/vi/<insert-youtube-video-id-here>/sddefault.jpg

थंबनेल के अधिकतम रिज़ॉल्यूशन संस्करण के लिए इसके समान URL का उपयोग करें:

https://ytimg.googleusercontent.com/vi/<insert-youtube-video-id-here>/maxresdefault.jpg

6
    function get_video_thumbnail( $src ) {
            $url_pieces = explode('/', $src);
            if( $url_pieces[2] == 'dai.ly'){
                $id = $url_pieces[3];
                $hash = json_decode(file_get_contents('https://api.dailymotion.com/video/'.$id.'?fields=thumbnail_large_url'), TRUE);
                $thumbnail = $hash['thumbnail_large_url'];
            }else if($url_pieces[2] == 'www.dailymotion.com'){
                $id = $url_pieces[4];
                $hash = json_decode(file_get_contents('https://api.dailymotion.com/video/'.$id.'?fields=thumbnail_large_url'), TRUE);
                $thumbnail = $hash['thumbnail_large_url'];
            }else if ( $url_pieces[2] == 'vimeo.com' ) { // If Vimeo
                $id = $url_pieces[3];
                $hash = unserialize(file_get_contents('http://vimeo.com/api/v2/video/' . $id . '.php'));
                $thumbnail = $hash[0]['thumbnail_large'];
            } elseif ( $url_pieces[2] == 'youtu.be' ) { // If Youtube
                $extract_id = explode('?', $url_pieces[3]);
                $id = $extract_id[0];
                $thumbnail = 'http://img.youtube.com/vi/' . $id . '/mqdefault.jpg';
            }else if ( $url_pieces[2] == 'player.vimeo.com' ) { // If Vimeo
                $id = $url_pieces[4];
                $hash = unserialize(file_get_contents('http://vimeo.com/api/v2/video/' . $id . '.php'));
                $thumbnail = $hash[0]['thumbnail_large'];
            } elseif ( $url_pieces[2] == 'www.youtube.com' ) { // If Youtube
                $extract_id = explode('=', $url_pieces[3]);
                $id = $extract_id[1];
                $thumbnail = 'http://img.youtube.com/vi/' . $id . '/mqdefault.jpg';
            } else{
                $thumbnail = tim_thumb_default_image('video-icon.png', null, 147, 252);
            }
            return $thumbnail;
        }

get_video_thumbnail('https://vimeo.com/154618727');
get_video_thumbnail('https://www.youtube.com/watch?v=SwU0I7_5Cmc');
get_video_thumbnail('https://youtu.be/pbzIfnekjtM');
get_video_thumbnail('http://www.dailymotion.com/video/x5thjyz');

5

यहां मैनुअल उपयोग के लिए शीर्ष उत्तर को अनुकूलित किया गया है। विभाजकों के बिना वीडियो आईडी टोकन एक डबल क्लिक के साथ चयन करने में सक्षम बनाता है।

प्रत्येक YouTube वीडियो में चार उत्पन्न चित्र हैं। वे अनुमानित रूप से निम्नानुसार स्वरूपित हैं:

https://img.youtube.com/vi/YOUTUBEVIDEOID/0.jpg
https://img.youtube.com/vi/YOUTUBEVIDEOID/1.jpg
https://img.youtube.com/vi/YOUTUBEVIDEOID/2.jpg
https://img.youtube.com/vi/YOUTUBEVIDEOID/3.jpg

सूची में पहला पूर्ण आकार की छवि है और अन्य थंबनेल छवियां हैं। (। यानी में से एक डिफ़ॉल्ट थंबनेल छवि 1.jpg, 2.jpg, 3.jpg) है:

https://img.youtube.com/vi/YOUTUBEVIDEOID/default.jpg

थंबनेल के उच्च गुणवत्ता वाले संस्करण के लिए इसके समान URL का उपयोग करें:

https://img.youtube.com/vi/YOUTUBEVIDEOID/hqdefault.jpg

मुख्यालय के समान URL का उपयोग करते हुए, थंबनेल का एक मध्यम गुणवत्ता संस्करण भी है:

https://img.youtube.com/vi/YOUTUBEVIDEOID/mqdefault.jpg

थंबनेल के मानक परिभाषा संस्करण के लिए, इसके समान URL का उपयोग करें:

https://img.youtube.com/vi/YOUTUBEVIDEOID/sddefault.jpg

थंबनेल के अधिकतम रिज़ॉल्यूशन संस्करण के लिए इसके समान URL का उपयोग करें:

https://img.youtube.com/vi/YOUTUBEVIDEOID/maxresdefault.jpg

उपरोक्त सभी URL HTTP पर भी उपलब्ध हैं। इसके अतिरिक्त, थोड़ा छोटा होस्टनाम ऊपर के उदाहरण URL i3.ytimg.comमें जगह के लिए काम करता है img.youtube.com

वैकल्पिक रूप से, आप थंबनेल डेटा प्राप्त करने के लिए YouTube डेटा API (v3) का उपयोग कर सकते हैं ।


4

विधि 1:

आप एक JSON पृष्ठ के साथ YouTube वीडियो के लिए सभी जानकारी पा सकते हैं, जिसमें "थंबनेल_ url " भी है, http://www.youtube.com/oembed?format=json&url= {आपका वीडियो URL यहां जाता है}

जैसे फाइनल URL लुक + PHP टेस्ट कोड

$data = file_get_contents("https://www.youtube.com/oembed?format=json&url=https://www.youtube.com/watch?v=_7s-6V_0nwA");
$json = json_decode($data);
var_dump($json);

उत्पादन

object(stdClass)[1]
  public 'width' => int 480
  public 'version' => string '1.0' (length=3)
  public 'thumbnail_width' => int 480
  public 'title' => string 'how to reminder in window as display message' (length=44)
  public 'provider_url' => string 'https://www.youtube.com/' (length=24)
  public 'thumbnail_url' => string 'https://i.ytimg.com/vi/_7s-6V_0nwA/hqdefault.jpg' (length=48)
  public 'author_name' => string 'H2 ZONE' (length=7)
  public 'type' => string 'video' (length=5)
  public 'author_url' => string 'https://www.youtube.com/channel/UC9M35YwDs8_PCWXd3qkiNzg' (length=56)
  public 'provider_name' => string 'YouTube' (length=7)
  public 'height' => int 270
  public 'html' => string '<iframe width="480" height="270" src="https://www.youtube.com/embed/_7s-6V_0nwA?feature=oembed" frameborder="0" allow="autoplay; encrypted-media" allowfullscreen></iframe>' (length=171)
  public 'thumbnail_height' => int 360

विवरण के लिए, आप यह भी देख सकते हैं कि आईडी या https://www.youtube.com/watch?v=mXde7q59BI8 वीडियो ट्यूटोरियल का उपयोग करके YouTube वीडियो थंबनेल कैसे प्राप्त करें 1

विधि 2:

YouTube छवि लिंक का उपयोग करके, https://img.youtube.com/vi/ "सम्मिलित करें-youtube-video-id-here" /default.jpg

विधि 3:

थंबनेल पाने के लिए ब्राउज़र स्रोत कोड का उपयोग करना, वीडियो स्रोत लिंक के लिए वीडियो यूआरएल लिंक का उपयोग करना और थंबनेल के लिए खोज करना। अब आप इस URL का उपयोग अपने स्रोत कोड में कर सकते हैं:

{img src="https://img.youtube.com/vi/"insert-youtube-video-id-here"/default.jpg"}

विवरण के लिए आप आईडी या https://www.youtube.com/watch?v=9f6E8MeM6PI वीडियो ट्यूटोरियल 2 का उपयोग करके YouTube वीडियो थंबनेल प्राप्त करने का तरीका भी देख सकते हैं


लिंक https://www.youtube.com/watch?v=mXde7q59BI8और https://www.youtube.com/watch?v=9f6E8MeM6PI(प्रभावी रूप से) टूटे हुए हैं।
पीटर मोर्टेंसन

youtube ने इस वीडियो को अपनी नीतियों के कारण प्रतिबंधित कर दिया है, मुझे आशा है कि यह लेख आपको www.hzonesp.com/php/get-youtube-video-thumbnail-use-id/
हसन सईद

3

उपयोग img.youtube.com/vi/YouTubeID/ImageFormat.jpg

यहां छवि प्रारूप डिफ़ॉल्ट, hqdefault, maxresdefault जैसे भिन्न हैं।


2

यह मेरा क्लाइंट-साइड-नो-एपीआई-की-नीड-सोल्यूशन है।

YouTube.parse('https://www.youtube.com/watch?v=P3DGwyl0mJQ').then(_ => console.log(_))

कोड:

import { parseURL, parseQueryString } from './url'
import { getImageSize } from './image'

const PICTURE_SIZE_NAMES = [
    // 1280 x 720.
    // HD aspect ratio.
    'maxresdefault',
    // 629 x 472.
    // non-HD aspect ratio.
    'sddefault',
    // For really old videos not having `maxresdefault`/`sddefault`.
    'hqdefault'
]

// - Supported YouTube URL formats:
//   - http://www.youtube.com/watch?v=My2FRPA3Gf8
//   - http://youtu.be/My2FRPA3Gf8
export default
{
    parse: async function(url)
    {
        // Get video ID.
        let id
        const location = parseURL(url)
        if (location.hostname === 'www.youtube.com') {
            if (location.search) {
                const query = parseQueryString(location.search.slice('/'.length))
                id = query.v
            }
        } else if (location.hostname === 'youtu.be') {
            id = location.pathname.slice('/'.length)
        }

        if (id) {
            return {
                source: {
                    provider: 'YouTube',
                    id
                },
                picture: await this.getPicture(id)
            }
        }
    },

    getPicture: async (id) => {
        for (const sizeName of PICTURE_SIZE_NAMES) {
            try {
                const url = getPictureSizeURL(id, sizeName)
                return {
                    type: 'image/jpeg',
                    sizes: [{
                        url,
                        ...(await getImageSize(url))
                    }]
                }
            } catch (error) {
                console.error(error)
            }
        }
        throw new Error(`No picture found for YouTube video ${id}`)
    },

    getEmbeddedVideoURL(id, options = {}) {
        return `https://www.youtube.com/embed/${id}`
    }
}

const getPictureSizeURL = (id, sizeName) => `https://img.youtube.com/vi/${id}/${sizeName}.jpg`

उपयोगिता image.js:

// Gets image size.
// Returns a `Promise`.
function getImageSize(url)
{
    return new Promise((resolve, reject) =>
    {
        const image = new Image()
        image.onload = () => resolve({ width: image.width, height: image.height })
        image.onerror = reject
        image.src = url
    })
}

उपयोगिता url.js:

// Only on client side.
export function parseURL(url)
{
    const link = document.createElement('a')
    link.href = url
    return link
}

export function parseQueryString(queryString)
{
    return queryString.split('&').reduce((query, part) =>
    {
        const [key, value] = part.split('=')
        query[decodeURIComponent(key)] = decodeURIComponent(value)
        return query
    },
    {})
}

1

यहाँ एक सरल कार्य है जो मैंने थंबनेल प्राप्त करने के लिए बनाया है। इसे समझना और उपयोग करना आसान है।

$ लिंक YouTube लिंक है जो बिल्कुल ब्राउज़र में है, उदाहरण के लिए, https://www.youtube.com/watch?v=BQ0mxQXmLsk

function get_youtube_thumb($link){
    $new = str_replace('https://www.youtube.com/watch?v=', '', $link);
    $thumbnail = 'https://img.youtube.com/vi/' . $new . '/0.jpg';
    return $thumbnail;
}

यह केवल तभी काम करता है जब url में कोई अन्य क्वेरी पैरामीटर न हो।
मा कोबी

हां, सभी यूट्यूब वीडियो देखने के दौरान प्रारूप का अनुसरण करते हैं, आप ब्राउज़र से लिंक की प्रतिलिपि बना सकते हैं
सोद्रुलडेन मुस्तफा

क्या होगा अगर आपके पास एक और पैरामीटर है जैसे &t=227s?
मा कोबी

1
मैं आपकी बात समझता हूं, लेकिन मानक यूट्यूब वीडियो अन्य मापदंडों के बिना आते हैं, लेकिन जब आवश्यकता होती है, तो आप फ़ंक्शन की पहली पंक्ति से पहले लिंक को फ़िल्टर कर सकते हैं। क्या आपको यह सुनिश्चित करने के लिए लिंक को फ़िल्टर करने में सहायता की आवश्यकता है कि यह आवश्यक को छोड़कर हर दूसरी चीज़ को अनदेखा कर दे?
सोद्रुलदीन मुस्तफा

1

इस कोड को खाली .php फ़ाइल में सहेजें और इसका परीक्षण करें।

<img src="<?php echo youtube_img_src('9bZkp7q19f0', 'high');?>" />
<?php
// Get a YOUTUBE video thumb image's source url for IMG tag "src" attribute:
// $ID = YouYube video ID (string)
// $size = string (default, medium, high or standard)
function youtube_img_src ($ID = null, $size = 'default') {
    switch ($size) {
        case 'medium':
            $size = 'mqdefault';
            break;
        case 'high':
            $size = 'hqdefault';
            break;
        case 'standard':
            $size = 'sddefault';
            break;
        default:
            $size = 'default';
            break;
    }
    if ($ID) {
        return sprintf('https://img.youtube.com/vi/%s/%s.jpg', $ID, $size);
    }
    return 'https://img.youtube.com/vi/ERROR/1.jpg';
}

धन्यवाद।


हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.