මට යූ ටියුබ් වීඩියෝ යූආර්එල් එකක් තිබේ නම්, යූ ටියුබ් ඒපීඅයි වෙතින් සම්බන්ධිත සිඟිති රූපය ලබා ගැනීමට පීඑච්පී සහ කර්ල් භාවිතා කිරීමට ක්රමයක් තිබේද?
මට යූ ටියුබ් වීඩියෝ යූආර්එල් එකක් තිබේ නම්, යූ ටියුබ් ඒපීඅයි වෙතින් සම්බන්ධිත සිඟිති රූපය ලබා ගැනීමට පීඑච්පී සහ කර්ල් භාවිතා කිරීමට ක්රමයක් තිබේද?
Answers:
සෑම යූ ටියුබ් වීඩියෝවකම ජනනය කළ රූප හතරක් ඇත. ඒවා අනාවැකි ලෙස පහත පරිදි සංයුති කර ඇත:
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
ලැයිස්තුවේ පළමුවැන්න සම්පූර්ණ ප්රමාණයේ රූපයක් වන අතර අනෙක් ඒවා සිඟිති රූප වේ. රූපය thumbnail පෙරනිමි (එනම්, එක් 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
.
විකල්පයක් ලෙස, සිඟිති රූප ලබා ගැනීමට ඔබට යූ ටියුබ් දත්ත API (v3) භාවිතා කළ හැකිය.
http://www.img.youtube.com
, පමණක්http://img.youtube.com
mqdefault
16: 9
sddefault
සහ maxresdefault
සෑම විටම නොපවතින සමහර වීඩියෝවල ඒවා ඇතත් ....
වීඩියෝ සිඟිති රූප, ශීර්ෂ පා, ය, විස්තරය, ශ්රේණිගත කිරීම, සංඛ්යාලේඛන සහ තවත් දේ ලබා ගැනීමට ඔබට යූ ටියුබ් දත්ත API භාවිතා කළ හැකිය . API අනුවාදය 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)
}
}
* ඔබට යතුරක් අවශ්ය බව පමණක් නොව, ඔබ කිරීමට අදහස් කරන API ඉල්ලීම් ගණන අනුව බිල්පත් තොරතුරු ඔබෙන් අසනු ඇත. කෙසේ වෙතත්, දිනකට ඉල්ලීම් මිලියන කිහිපයක් නොමිලේ.
jsonc
වෙනුවට ඔබ භාවිතා json
කළා. ඔබගේ වැරදි JSON ව්යුහය නිසා එය අසාර්ථක වේ.
jsonc
. JQuery සහ PHP උදාහරණ භාවිතා කළ යුතුයjson
. නව JSON ව්යුහයට අනුකූල වන පරිදි මම කේතය යාවත්කාලීන කර ඇත. මම දැන් කේතය භාවිතා කරන අතර එය සජීවීව ක්රියාත්මක වේ. එබැවින් වෙනස්කම් කියවීමෙන් තොරව එය ක්රියාත්මක නොවන බව නොකියන්න. ස්තූතියි!
v=2
) ඉල්ලා සිටීම API වෙනස්කම් ගැන සැලකිලිමත් වේ.
අසාෆ් කියපු දේ හරි. කෙසේ වෙතත්, සෑම යූ ටියුබ් වීඩියෝවකම සිඟිති රූප නවයක් අඩංගු නොවේ. එසේම, සිඟිති රූ වල රූප ප්රමාණයන් වීඩියෝව මත රඳා පවතී (පහත සංඛ්යා එක මත පදනම් වේ).
පවතින බවට සහතික කර ඇති සිඟිති රූ හතක් තිබේ:
| 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 |
සිඟිති රූ සහ වෙනත් යූ ටියුබ් තොරතුරු ලබා ගැනීමට ඔබට ජාවාස්ක්රිප්ට් සහ පීඑච්පී ස්ක්රිප්ට් සොයාගත හැකිය:
යූආර්එල් හෝ වීඩියෝ හැඳුනුම්පතක් ඉදිරිපත් කිරීමෙන් යූ ටියුබ් වීඩියෝවක් පිළිබඳ සියලු තොරතුරු ලබා ගැනීමට ඔබට යූ ටියුබ් වීඩියෝ තොරතුරු උත්පාදක මෙවලම භාවිතා කළ හැකිය .
යූ ටියුබ් 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 ෆයර්වෝල් මගින් අවහිර නොකිරීමයි.
විශේෂිත වීඩියෝ හැඳුනුම්පතක් සඳහා යූ ටියුබ් වෙතින් විශාලතම රූපය ඔබට අවශ්ය නම්, URL එක මේ වගේ දෙයක් විය යුතුය:
http://i3.ytimg.com/vi/SomeVideoIDHere/0.jpg
API භාවිතා කරමින්, ඔබට සුපුරුදු සිඟිති රූපය ලබා ගත හැකිය. සරල කේතය මේ වගේ දෙයක් විය යුතුයි:
//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 , දර්ශන අනුපාතය ගැන මට විශ්වාස නැත.
යූ ටියුබ් වෙතින් පවතින පින්තූර පමණක් ලබා ගැනීම සඳහා මම කාර්යයක් කළෙමි
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;
}
දී යූ ටියුබ් දත්ත API V3 , ඔබ සමග වීඩියෝ ගේ සිඟිති ලබා ගත හැක videos-> ලැයිස්තුව උත්සවය. Snippet.thumbnails වෙතින් (යතුර) , ඔබට සුපුරුදු, මධ්යම හෝ ඉහළ විභේදන සිඟිති රූපය තෝරාගෙන එහි පළල, උස සහ URL ලබා ගත හැකිය.
සිඟිති රූ-> සැකසුම් ක්රියාකාරිත්වය සමඟ ඔබට සිඟිති රූ යාවත්කාලීන කළ හැකිය .
උදාහරණ සඳහා, ඔබට යූ ටියුබ් ඒපීඅයි නියැදි ව්යාපෘතිය බලන්න. ( PHP අය .)
වීඩියෝ පටයේ සිඟිති රූපයට URL ය අඩංගු වීඩියෝ ඇතුළත් කිරීම ඔබට ලබා ගත හැකිය . සබැඳියේ උදාහරණ කේතයක් ඇත. නැතහොත්, ඔබට XML විග්රහ කිරීමට අවශ්ය නම්, මෙහි තොරතුරු තිබේ . ආපසු ලබා දුන් XML හි media:thumbnail
මූලද්රව්යයක් ඇත, එහි සිඟිති රූපයේ URL අඩංගු වේ.
// 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
ඔබට කිරීමට අවශ්ය වන්නේ යූ ටියුබ් සෙවීම සහ ඊට සම්බන්ධ දේපල ලබා ගැනීම පමණි:
පොදු API එකක් ලබා ගන්න - මෙම සබැඳිය හොඳ දිශාවක් ලබා දෙයි
පහත විමසුම් නූල භාවිතා කරන්න. URL නූලෙහි ඇති සෙවුම් විමසුම ( q = මගින් දක්වනු ලැබේ ) උදාහරණ අරමුණු සඳහා stackoverflow වේ. පසුව යූ ටියුබ් ඔබට JSON පිළිතුරක් යවනු ඇත, එහිදී ඔබට සිඟිති රූ, ස්නිපෙට්, කර්තෘ යනාදිය විග්රහ කළ හැකිය.
තවත් හොඳ විකල්පයක් වනුයේ oEmbed භාවිතා කිරීමයි යූ ටියුබ් සහාය දක්වන API .
ඔබ ඔබේ යූ ටියුබ් 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"
}
වැඩි විස්තර සඳහා ප්රලේඛනය කියවන්න .
භාවිත:
https://www.googleapis.com/youtube/v3/videoCategories?part=snippet,id&maxResults=100®ionCode=us&key=**Your YouTube ID**
ඉහත සබැඳිය. එය භාවිතා කිරීමෙන් ඔබට වීඩියෝවල යූ ටියුබ් ලක්ෂණ සොයාගත හැකිය. ලක්ෂණ සොයා ගැනීමෙන් පසුව, ඔබට තෝරාගත් කාණ්ඩයේ වීඩියෝ ලබා ගත හැකිය. ඉන් පසු ඔබ භාවිතා තෝරාගත් වීඩියෝ රූප සොයා ගත හැකි ආසාෆ්ගේ පිළිතුර .
ඉහත ප්රවේශය උත්සාහ කර ඔබට YouTube API වෙතින් සියල්ල විග්රහ කළ හැකිය .
මම මේ ආකාරයෙන් යූ ටියුබ් සිඟිති රූ භාවිතා කර ඇත:
$url = 'http://img.youtube.com/vi/' . $youtubeId . '/0.jpg';
$img = dirname(__FILE__) . '/youtubeThumbnail_' . $youtubeId . '.jpg';
file_put_contents($img, file_get_contents($url));
යූ ටියුබ් ඔවුන්ගේ සේවාදායකයෙන් සෘජුවම පින්තූර ඇතුළත් කිරීම වළක්වන බව මතක තබා ගන්න.
රූපය මත තබා ඇති යූ ටියුබ් බොත්තම සමඟ රූපය නිර්මාණය කිරීමට ඔබට ඉඩ සලසන මෙම නව මෙවලම මට හමු විය:
ලබා දී ඇති විසඳුම් එකතු කිරීම / පුළුල් කිරීම සඳහා, මට මෙම ගැටලුව ඇති බැවින්, යමෙකුට ඇත්ත වශයෙන්ම යූ ටියුබ් වීඩියෝ අන්තර්ගතයන් කිහිපයක් ලබා ගත හැකි බව මතක තබා ගත යුතුය, මේ අවස්ථාවේ දී, සිඟිති රූ, එක් 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);
?>
දත්ත API (v3) හරහා සෑම වීඩියෝවක් සඳහාම ජනනය කළ රූප හතර යූ ටියුබ් අපට සපයයි, උදාහරණයක් ලෙස
මේ අනුව, ඔබ ඔබේ URL එක මේ ආකාරයට වාක්ය ඛණ්ඩනය කළ යුතුය -
www.googleapis.com/youtube/v3/videos?part=snippet&id=`yourVideoId`&key=`yourApiKey`
දැන් ඔබේ වීඩියෝ හැඳුනුම්පත සහ ඒපීඅයි යතුර ඔබේ අදාළ වීඩියෝ හැඳුනුම්පතට සහ ඒපී යතුරට වෙනස් කරන්න. එහි ප්රතිචාරය ඔබට ස්නිපෙට් විචල්යයේ සිඟිති රූපවල ඇති සබැඳි හතර සපයන JSON ප්රතිදානයකි (සියල්ල තිබේ නම්).
ඔබට parse_url , parse_str භාවිතා කරමින් යූ ටියුබ් වීඩියෝ යූආර්එල් වෙතින් වීඩියෝ හැඳුනුම්පත ලබා ගත හැකි අතර පසුව රූප සඳහා පුරෝකථන යූආර්එල් වලට ඇතුල් කරන්න. පුරෝකථන 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
යූ ටියුබ් සිඟිති-රූපය සඳහා මා විසින් සාදන ලද සරල PHP ශ්රිතයක් සහ වර්ග වේ
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;}
ඔබ පොදු API භාවිතා කරන්නේ නම්, එය කළ හැකි හොඳම ක්රමය භාවිතා කිරීමයි if
ප්රකාශ කිරීමයි.
වීඩියෝව පොදු හෝ ලැයිස්තුගත නොවන්නේ නම්, ඔබ URL ක්රමය භාවිතා කර සිඟිති රූපය සකසයි. වීඩියෝව පුද්ගලික නම් ඔබ සිඟිති රූපය ලබා ගැනීමට 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 කිහිපයක් එක් කිරීමට මට අවශ්යය. මම ආසාෆ්ගේ පිළිතුරෙන් යම් පෙළක් ගන්නවා. යූ ටියුබ් සිඟිති රූප ලබා ගැනීමට 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
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
ලැයිස්තුවේ පළමුවැන්න සම්පූර්ණ ප්රමාණයේ රූපයක් වන අතර අනෙක් ඒවා සිඟිති රූප වේ. රූපය thumbnail පෙරනිමි (. එනම් එක් 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
.
විකල්පයක් ලෙස, සිඟිති රූප ලබා ගැනීමට ඔබට යූ ටියුබ් දත්ත API (v3) භාවිතා කළ හැකිය.
ක්රමය 1:
"Thumbnail_url", http://www.youtube.com/oembed?format=json&url= පවා ඇති JSON පිටුවක් සහිත යූ ටියුබ් වීඩියෝවක් සඳහා ඔබට සියලු තොරතුරු සොයාගත හැකිය. {ඔබේ වීඩියෝ 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 භාවිතා කරමින් යූ ටියුබ් වීඩියෝ සිඟිති රූපයක් ලබා ගන්නේ කෙසේද යන්නත් ඔබට දැක ගත හැකිය. වීඩියෝ නිබන්ධනය
ක්රමය 2:
යූ ටියුබ් අනුරූප සබැඳිය භාවිතා කරමින්, https://img.youtube.com/vi/ "ඇතුළු කරන්න- youtube-video-id-here" /default.jpg
ක්රමය 3:
වීඩියෝ URL සබැඳිය භාවිතා කරමින් සිඟිති-රූපය ලබා ගැනීම සඳහා බ්රව්සර් ප්රභව කේතය භාවිතා කිරීම සහ වීඩියෝ ප්රභව කේතයට ගොස් සිඟිති රූ සෙවීම. දැන් ඔබට මෙම URL ඔබේ මූලාශ්ර කේතයට භාවිතා කළ හැකිය:
{img src="https://img.youtube.com/vi/"insert-youtube-video-id-here"/default.jpg"}
විස්තර සඳහා ඔබට හැඳුනුම්පත හෝ https://www.youtube.com/watch?v=9f6E8MeM6PI වීඩියෝ නිබන්ධනය භාවිතා කරමින් යූ ටියුබ් වීඩියෝ සිඟිති රූපයක් ලබා ගන්නේ කෙසේද යන්න ද දැක ගත හැකිය.
https://www.youtube.com/watch?v=mXde7q59BI8
සහ https://www.youtube.com/watch?v=9f6E8MeM6PI
(effectively ලදායී ලෙස) කැඩී ඇත.
භාවිත img.youtube.com/vi/YouTubeID/ImageFormat.jpg
මෙහි රූප ආකෘති පෙරනිමි, hqdefault, maxresdefault වැනි වෙනස් වේ.
මෙය මගේ සේවාදායකයාගේ පැත්තට පමණක් වන API අවශ්ය නොවන විසඳුමකි.
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';
}
ස්තූතියි.
public const string tubeThumb = "http://i.ytimg.com/vi/[id]/hqdefault.jpg";
vid.Thumbnail = tubeThumb.Replace("[id]", vid.VideoID);