আমার যদি কোনও ইউটিউব ভিডিও ইউআরএল থাকে, ইউটিউব এপিআই থেকে সম্পর্কিত থাম্বনেইল পেতে পিএইচপি এবং সিআরএল ব্যবহার করার কোনও উপায় আছে কি?
আমার যদি কোনও ইউটিউব ভিডিও ইউআরএল থাকে, ইউটিউব এপিআই থেকে সম্পর্কিত থাম্বনেইল পেতে পিএইচপি এবং সিআরএল ব্যবহার করার কোনও উপায় আছে কি?
উত্তর:
প্রতিটি ইউটিউব ভিডিওতে চারটি উত্পন্ন চিত্র রয়েছে। সেগুলি অনুমানযোগ্যভাবে নিম্নরূপে ফর্ম্যাট করা হয়েছে:
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
থাম্বনেইলের উচ্চ মানের সংস্করণের জন্য এর অনুরূপ একটি ইউআরএল ব্যবহার করুন:
https://img.youtube.com/vi/<insert-youtube-video-id-here>/hqdefault.jpg
এইচকিউয়ের অনুরূপ ইউআরএল ব্যবহার করে থাম্বনেইলের একটি মাঝারি মানের সংস্করণও রয়েছে:
https://img.youtube.com/vi/<insert-youtube-video-id-here>/mqdefault.jpg
থাম্বনেইলের স্ট্যান্ডার্ড সংজ্ঞা সংস্করণের জন্য, এর অনুরূপ একটি ইউআরএল ব্যবহার করুন:
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) ব্যবহার করতে পারেন ।
http://www.img.youtube.com
কেবল ব্যবহার করতে পারবেন নাhttp://img.youtube.com
mqdefault
16: 9
sddefault
এবংmaxresdefault
কিছু ভিডিও সবসময়ই অজাইবল নয় যদিও তাদের ....
ভিডিও থাম্বনেইলস, ক্যাপশন, বিবরণ, রেটিং, পরিসংখ্যান এবং আরও অনেক কিছু পেতে আপনি ইউটিউব ডেটা এপিআই ব্যবহার করতে পারেন । API সংস্করণ 3 এর জন্য একটি কী প্রয়োজন *। কীটি পান এবং একটি ভিডিও তৈরি করুন : অনুরোধ তালিকা :
https://www.googleapis.com/youtube/v3/videos?key=YOUR_API_KEY&part=snippet&id=VIDEO_ID
উদাহরণ পিএইচপি কোড
$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)
}
}
* কেবল আপনার চাবি লাগবে তা নয়, আপনার করা পরিকল্পনাগুলির সংখ্যার উপর নির্ভর করে আপনাকে বিলিংয়ের তথ্য জিজ্ঞাসা করা হতে পারে। তবে, প্রতিদিন কয়েক মিলিয়ন অনুরোধ বিনামূল্যে।
jsonc
পরিবর্তে json
ব্যবহার করেছেন। এটি আপনার ভুল JSON কাঠামোর কারণে ব্যর্থ হচ্ছে।
jsonc
। JQuery এবং পিএইচপি উদাহরণগুলি ব্যবহার করা আবশ্যকjson
। এবং আমি নতুন JSON কাঠামো অনুসারে কোডটি আপডেট করেছি have আমি এখনই কোডটি ব্যবহার করছি এবং এটি লাইভ কাজ করছে। সুতরাং পরিবর্তনগুলি না পড়ে এটি কাজ করছে না বলে বলবেন না। ধন্যবাদ!
v=2
) অনুরোধ করা এপিআই পরিবর্তনগুলির যত্ন নেয়।
আসফ যা বলেছিল তা সঠিক। তবে, প্রতিটি 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 তথ্য পুনরুদ্ধার করতে আপনি জাভাস্ক্রিপ্ট এবং পিএইচপি স্ক্রিপ্টগুলি খুঁজে পেতে পারেন:
ইউআরএল বা ভিডিও আইডি জমা দিয়ে YouTube ভিডিও সম্পর্কে সমস্ত তথ্য পেতে আপনি YouTube ভিডিও তথ্য জেনারেটর সরঞ্জামটিও ব্যবহার করতে পারেন use
ইউটিউব এপিআই ভি 3-তে আমরা থাম্বনেইলগুলি পাওয়ার জন্য এই ইউআরএলগুলিও ব্যবহার করতে পারি ... সেগুলি তাদের মানের ভিত্তিতে শ্রেণিবদ্ধ করা হয়।
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
প্রথম উত্তরে ইউআরএলগুলির উপর এই ইউআরএলগুলির একটি সুবিধা হ'ল এই ইউআরএলগুলি ফায়ারওয়াল দ্বারা অবরুদ্ধ হয় না।
আপনি যদি নির্দিষ্ট ভিডিও আইডির জন্য ইউটিউব থেকে সবচেয়ে বড় চিত্র চান তবে ইউআরএলটি এমন কিছু হওয়া উচিত:
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);
আপনি যদি "ব্ল্যাক বারগুলি" থেকে মুক্তি পেতে এবং ইউটিউব যেমন এটি করতে চান তবে আপনি এটি ব্যবহার করতে পারেন:
https://i.ytimg.com/vi_webp/<video id>/mqdefault.webp
এবং আপনি যদি .webp
ফাইল এক্সটেনশন ব্যবহার করতে না পারেন তবে আপনি এটি এর মতো করতে পারেন:
https://i.ytimg.com/vi/<video id>/mqdefault.jpg
এছাড়াও, যদি আপনার অনাবৃত সংস্করণ প্রয়োজন হয় তবে তার maxresdefault
পরিবর্তে ব্যবহার করুনmqdefault
।
দ্রষ্টব্য: আপনি যদি ব্যবহারের পরিকল্পনা করে থাকেন তবে অনুপাতের অনুপাত সম্পর্কে আমি নিশ্চিত নই maxresdefault
।
_webp
এক্সটেনশানটি সরিয়ে এবং এতে পরিবর্তন করেন তবে এটি কাজ করে .jpg
। কার্যকারী উদাহরণ: i.ytimg.com/vi/mJ8tq8AnNis/mqdefault.jpg , আমি অনুপাতের অনুপাত সম্পর্কে নিশ্চিত নই।
আমি কেবল YouTube থেকে বিদ্যমান চিত্রগুলি আনার জন্য একটি ফাংশন তৈরি করেছি made
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;
}
ইন YouTube ডেটা API v3 এর আপনার সাথে ভিডিওর থাম্বনেল পেতে পারেন videos-> তালিকা ফাংশন। স্নিপেট.থম্বনেইলস থেকে (কী) , আপনি ডিফল্ট, মাঝারি বা হাই রেজোলিউশনের থাম্বনেল বাছাই, এবং তার প্রস্থ, উচ্চতা এবং URL পেতে পারেন।
আপনি থাম্বনেইল-> সেট দিয়ে থাম্বনেইল আপডেট করতে পারেন কার্যকারিতা ।
উদাহরণস্বরূপ, আপনি ইউটিউব এপিআই নমুনা প্রকল্পটি দেখতে পারেন। ( পিএইচপি বেশী ।)
আপনি ভিডিও এন্ট্রি পেতে পারেন যাতে ভিডিওর থাম্বনেইলে URL থাকে। লিঙ্কে উদাহরণ কোড আছে। অথবা, আপনি যদি এক্সএমএল বিশ্লেষণ করতে চান তবে এখানে তথ্য রয়েছে । ফিরে আসা এক্সএমএলের একটি media:thumbnail
উপাদান রয়েছে, এতে থাম্বনেইলের ইউআরএল রয়েছে।
// 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;
ইউটিউব গুগলের মালিকানাধীন এবং গুগল বিভিন্ন স্ক্রিন আকারের জন্য যুক্তিসঙ্গত সংখ্যক চিত্র রাখতে পছন্দ করে, তাই এর চিত্রগুলি বিভিন্ন আকারে সংরক্ষণ করা হয়। আপনার থাম্বনেইলটি কেমন হবে তার উদাহরণ এখানে রয়েছে:
নিম্নমানের থাম্বনেইল:
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
আপনি যা করতে চান তা হ'ল ইউটিউব অনুসন্ধান করুন এবং সম্পর্কিত বৈশিষ্ট্যগুলি পান:
একটি সর্বজনীন এপিআই পান - এই লিঙ্কটি একটি ভাল দিকনির্দেশ দেয়
ক্যোয়ারী স্ট্রিংয়ের নীচে ব্যবহার করুন। ইউআরএল স্ট্রিংয়ে অনুসন্ধান ক্যোয়ারী ( q = দ্বারা চিহ্নিত ) উদাহরণস্বরূপ স্ট্যাকওভারফ্লো । ইউটিউব তারপরে আপনাকে একটি জেএসওএন জবাব পাঠিয়ে দেবে যেখানে আপনি তারপর থাম্বনেল, স্নিপেট, লেখক ইত্যাদির জন্য পার্স করতে পারেন can
আরেকটি ভাল বিকল্প হ'ল ও এম্বেড ব্যবহার করা এপিআই যা ইউটিউব সমর্থিত।
আপনি কেবল আপনার ইউটিউব ইউআরএলকে ওয়েড ইউআরএল-এ যুক্ত করুন এবং আপনি এম্বেডের জন্য একটি থাম্বনেইল এবং এইচটিএমএল কোড সহ একটি জেএসওএন পাবেন।
উদাহরণ:
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"
}
আরও তথ্যের জন্য ডকুমেন্টেশন পড়ুন ।
ব্যবহার করুন:
https://www.googleapis.com/youtube/v3/videoCategories?part=snippet,id&maxResults=100®ionCode=us&key=**Your YouTube ID**
উপরের লিঙ্কটি। এটি ব্যবহার করে, আপনি ভিডিওগুলির YouTube বৈশিষ্ট্যগুলি খুঁজে পেতে পারেন। বৈশিষ্ট্যগুলি সন্ধান করার পরে, আপনি নির্বাচিত বিভাগের ভিডিওগুলি পেতে পারেন। এরপরে আপনি আসফের উত্তরটি ব্যবহার করে নির্বাচিত ভিডিও চিত্রগুলি পেতে পারেন ।
উপরোক্ত পদ্ধতির চেষ্টা করে দেখুন এবং আপনি YouTube এপিআই থেকে সমস্ত কিছু পার্স করতে পারেন ।
আমি এইভাবে ইউটিউব থাম্বনেইল ব্যবহার করেছি:
$url = 'http://img.youtube.com/vi/' . $youtubeId . '/0.jpg';
$img = dirname(__FILE__) . '/youtubeThumbnail_' . $youtubeId . '.jpg';
file_put_contents($img, file_get_contents($url));
মনে রাখবেন ইউটিউব সরাসরি তাদের সার্ভার থেকে চিত্রগুলি অন্তর্ভুক্ত করতে বাধা দেয়।
আমি এই নিফটি সরঞ্জামটি পেয়েছি যা আপনাকে চিত্রের উপরে রাখা ইউটিউব প্লে বোতাম দিয়ে চিত্রটি তৈরি করতে দেয়:
প্রদত্ত সমাধানগুলিতে কেবল যুক্ত করতে / প্রসারিত করার জন্য, আমি মনে করি যে এটি আমার মনে করা দরকার, যেহেতু আমি নিজেই এই সমস্যাটি পেয়েছিলাম, একজন আসলে এইচটিটিপি অনুরোধের সাথে একাধিক ইউটিউব ভিডিও সামগ্রী পেতে পারে, এক্ষেত্রে থাম্বনেইল:
এইচটিটিএফএফএল-র বিশ্রামের ক্লায়েন্ট ব্যবহার করে আপনি এরকম কিছু করতে পারেন:
<?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);
?>
ইউটিউব ডেটা এপিআই (ভি 3) এর মাধ্যমে প্রতিটি ভিডিওর জন্য আমাদের চারটি উত্পন্ন চিত্র সরবরাহ করে, উদাহরণস্বরূপ,
এটি অনুসারে, আপনাকে আপনার ইউআরএলটির বাক্যাংশটি লিখতে হবে -
www.googleapis.com/youtube/v3/videos?part=snippet&id=`yourVideoId`&key=`yourApiKey`
এখন আপনার ভিডিও আইডি এবং আপনার এপিআই কীটি আপনার সম্পর্কিত ভিডিও-আইডি এবং এপিআই-কীতে পরিবর্তন করুন এবং এর প্রতিক্রিয়া হ'ল জেএসওএন আউটপুট আপনাকে স্নিপেট ভেরিয়েবলের থাম্বনেইলে চারটি লিঙ্ক সরবরাহ করবে (যদি সমস্ত উপলব্ধ থাকে)।
আপনি পার্সে_আরল , পার্স_স্টার ব্যবহার করে ইউটিউব ভিডিও ইউআরএল থেকে ভিডিও আইডি পেতে পারেন এবং তারপরে চিত্রগুলির জন্য ভবিষ্যদ্বাণীমূলক url এ প্রবেশ করতে পারেন। ভবিষ্যদ্বাণীমূলক URL গুলির জন্য ইউটিউবকে ধন্যবাদ
$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";
আপনি ইউটিউব থাম্বনেইল তৈরি করতে এই সরঞ্জামটি ব্যবহার করতে পারেন
https://tools.tutsplanet.com/index.php/get-youtube-video-thumbnails
আমি ইউটিউব থাম্বনেল এবং প্রকারের জন্য তৈরি একটি সহজ পিএইচপি ফাংশন
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;}
আপনি যদি সর্বজনীন এপিআই ব্যবহার করেন তবে এটি করার সর্বোত্তম উপায়টি হ'ল if
স্টেটমেন্টগুলি।
ভিডিওটি যদি সর্বজনীন বা তালিকাভুক্ত থাকে তবে আপনি URL পদ্ধতিটি ব্যবহার করে থাম্বনেল সেট করেছেন set ভিডিওটি ব্যক্তিগত হলে আপনি থাম্বনেইল পেতে API ব্যবহার করুন।
<?php
if($video_status == 'unlisted'){
$video_thumbnail = 'http://img.youtube.com/vi/'.$video_url.'/mqdefault.jpg';
$video_status = '<i class="fa fa-lock"></i> Unlisted';
}
elseif($video_status == 'public'){
$video_thumbnail = 'http://img.youtube.com/vi/'.$video_url.'/mqdefault.jpg';
$video_status = '<i class="fa fa-eye"></i> Public';
}
elseif($video_status == 'private'){
$video_thumbnail = $playlistItem['snippet']['thumbnails']['maxres']['url'];
$video_status = '<i class="fa fa-lock"></i> Private';
}
আমি মনে করি এগুলি থাম্বনেইলের জন্য প্রচুর উত্তর, তবে ইউটিউব থাম্বনেইল খুব সহজেই পেতে আমি অন্য কয়েকটি ইউআরএল যুক্ত করতে চাই। আমি আসফের উত্তর থেকে কিছু পাঠ্য নিচ্ছি। ইউটিউব থাম্বনেইল পেতে এখানে কিছু URL আছে:
https://ytimg.googleusercontent.com/vi/<insert-youtube-video-id-here>/default.jpg
থাম্বনেইলের উচ্চ মানের সংস্করণের জন্য এর অনুরূপ একটি ইউআরএল ব্যবহার করুন:
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
থাম্বনেইলের স্ট্যান্ডার্ড সংজ্ঞা সংস্করণের জন্য, এর অনুরূপ একটি ইউআরএল ব্যবহার করুন:
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
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');
ম্যানুয়াল ব্যবহারের জন্য সেরা উত্তর এখানে । বিভাজক ব্যতীত ভিডিও আইডি টোকেন একটি ডাবল ক্লিকের সাহায্যে নির্বাচন সক্ষম করে।
প্রতিটি ইউটিউব ভিডিওতে চারটি উত্পন্ন চিত্র রয়েছে। সেগুলি অনুমানযোগ্যভাবে নিম্নরূপে ফর্ম্যাট করা হয়েছে:
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
থাম্বনেইলের উচ্চ মানের সংস্করণের জন্য এর অনুরূপ একটি ইউআরএল ব্যবহার করুন:
https://img.youtube.com/vi/YOUTUBEVIDEOID/hqdefault.jpg
এইচকিউয়ের অনুরূপ ইউআরএল ব্যবহার করে থাম্বনেইলের একটি মাঝারি মানের সংস্করণও রয়েছে:
https://img.youtube.com/vi/YOUTUBEVIDEOID/mqdefault.jpg
থাম্বনেইলের স্ট্যান্ডার্ড সংজ্ঞা সংস্করণের জন্য, এর অনুরূপ একটি ইউআরএল ব্যবহার করুন:
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) ব্যবহার করতে পারেন ।
পদ্ধতি 1:
আপনি একটি জেএসওএন পৃষ্ঠার সাথে YouTube ভিডিওর সমস্ত তথ্য খুঁজে পেতে পারেন যা "থাম্বনেইল_আরল", http://www.youtube.com / এম্বেড ?format =json&url= has আপনার ভিডিও URL টি এখানে যায় with
চূড়ান্ত URL চেহারা + পিএইচপি পরীক্ষা কোড পছন্দ করুন
$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 ভিডিও টিউটোরিয়াল 1 ব্যবহার করে একটি ইউটিউব ভিডিও থাম্বনেইল পাবেন তা দেখতে পারেন
পদ্ধতি 2:
ইউটিউব চিত্রের লিঙ্কটি ব্যবহার করে https://img.youtube.com/vi/ "-োকান-ইউটিউব-ভিডিও-আইডি এখানে" /default.jpg
পদ্ধতি 3:
ভিডিও ইউআরএল লিঙ্কটি ব্যবহার করে থাম্বনেইল পাওয়ার জন্য ব্রাউজার উত্স কোড ব্যবহার করে ভিডিও উত্স কোডে লিংক দিন এবং থাম্বনেইলারের জন্য অনুসন্ধান করুন। এখন আপনি এই উত্স কোডটি আপনার উত্স কোডটিতে ব্যবহার করতে পারেন:
{img src="https://img.youtube.com/vi/"insert-youtube-video-id-here"/default.jpg"}
বিশদর জন্য আপনি কীভাবে আইডি বা https://www.youtube.com/watch?v=9f6E8MeM6PI ভিডিও টিউটোরিয়াল 2 ব্যবহার করে একটি ইউটিউব ভিডিও থাম্বনেইল পাবেন তা দেখতে পারেন
https://www.youtube.com/watch?v=mXde7q59BI8
এবং https://www.youtube.com/watch?v=9f6E8MeM6PI
(কার্যকরভাবে) নষ্ট হয়ে গেছে।
ব্যবহার img.youtube.com/vi/YouTubeID/ImageFormat.jpg
এখানে চিত্রের ফর্ম্যাটগুলি ডিফল্ট, এইচকেডেফল্ট, ম্যাক্রেসডেফল্টের মতো আলাদা।
এটি আমার ক্লায়েন্টের পাশের কোনও-এপিআই-কী-প্রয়োজনীয় সমাধান নয়।
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
},
{})
}
থাম্বনেইল পাওয়ার জন্য তৈরি করা একটি সাধারণ ফাংশন এখানে। এটি বোঝা এবং ব্যবহার করা সহজ।
$ লিঙ্কটি হ'ল ইউটিউব লিঙ্কটি ব্রাউজারে যেমন রয়েছে তেমনই অনুলিপি করা হয়েছে, উদাহরণস্বরূপ, 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;
}
&t=227s
?
এই কোডটি খালি। 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';
}
ধন্যবাদ।