আমি ভিমেও থেকে ভিডিওগুলির জন্য একটি থাম্বনেইল চিত্র পেতে চাই।
ইউটিউব থেকে ছবি পাওয়ার সময় আমি ঠিক এটি করি:
http://img.youtube.com/vi/HwP5NG-3e8I/2.jpg
ভিমেওর জন্য কীভাবে করবেন?
আমি ভিমেও থেকে ভিডিওগুলির জন্য একটি থাম্বনেইল চিত্র পেতে চাই।
ইউটিউব থেকে ছবি পাওয়ার সময় আমি ঠিক এটি করি:
http://img.youtube.com/vi/HwP5NG-3e8I/2.jpg
ভিমেওর জন্য কীভাবে করবেন?
উত্তর:
থেকে Vimeo সহজ এপিআই ডক্স :
একটি ভিডিও অনুরোধ করা
একটি নির্দিষ্ট ভিডিও সম্পর্কে ডেটা পেতে, নিম্নলিখিত url ব্যবহার করুন:
http://vimeo.com/api/v2/video/video_id.output
video_id আপনি যে ভিডিওটির তথ্য চান তার আইডি।
আউটপুট আউটপুট ধরণ উল্লেখ করুন। আমরা বর্তমানে জেএসএন, পিএইচপি, এবং এক্সএমএল ফর্ম্যাটগুলি সরবরাহ করি।
সুতরাং এই URL টি পেতে http://vimeo.com/api/v2/video/6271487.xml
<videos>
<video>
[skipped]
<thumbnail_small>http://ts.vimeo.com.s3.amazonaws.com/235/662/23566238_100.jpg</thumbnail_small>
<thumbnail_medium>http://ts.vimeo.com.s3.amazonaws.com/235/662/23566238_200.jpg</thumbnail_medium>
<thumbnail_large>http://ts.vimeo.com.s3.amazonaws.com/235/662/23566238_640.jpg</thumbnail_large>
[skipped]
</videos>
থাম্বনেইল পেতে প্রতিটি ভিডিওর জন্য এটি পার্স করুন
এখানে পিএইচপি-তে আনুমানিক কোড
<?php
$imgid = 6271487;
$hash = unserialize(file_get_contents("http://vimeo.com/api/v2/video/$imgid.php"));
echo $hash[0]['thumbnail_medium'];
xml
যদিও আমি এর সাথে পরিচিত নই । আমি কিভাবে পেতে পারেন thumbnail_small
সঙ্গে php
?
thumbnail_large
থেকে i.vimeocdn.com/video/23566238_640.webp করার i.vimeocdn.com/video/23566238_640.png বা i.vimeocdn.com/video/23566238_320.jpg
জাভাস্ক্রিপ্টে (jQuery ব্যবহার করে):
function vimeoLoadingThumb(id){
var url = "http://vimeo.com/api/v2/video/" + id + ".json?callback=showThumb";
var id_img = "#vimeo-" + id;
var script = document.createElement( 'script' );
script.src = url;
$(id_img).before(script);
}
function showThumb(data){
var id_img = "#vimeo-" + data[0].id;
$(id_img).attr('src',data[0].thumbnail_medium);
}
এটি প্রদর্শন করতে:
<img id="vimeo-{{ video.id_video }}" src="" alt="{{ video.title }}" />
<script type="text/javascript">
vimeoLoadingThumb({{ video.id_video }});
</script>
$(id_img).before
এবং $(id_img).attr
জন্য createElement
এবং একটি আরো মৌলিক getElementById(id_img).src
, কিন্তু সব সময়ে এটা পেয়েছিলাম হতো না যদি এটা আপনার উদাহরণস্বরূপ ছিল না।
আপনার ভিউমির এপিআই'র প্রতিক্রিয়া পার্স করা উচিত। ইউআরএল কলগুলির সাথে এটির কোনও উপায় নেই (যেমন ডেইলিমোশন বা ইউটিউব)।
এখানে আমার পিএইচপি সমাধান:
/**
* Gets a vimeo thumbnail url
* @param mixed $id A vimeo id (ie. 1185346)
* @return thumbnail's url
*/
function getVimeoThumb($id) {
$data = file_get_contents("http://vimeo.com/api/v2/video/$id.json");
$data = json_decode($data);
return $data[0]->thumbnail_medium;
}
JQuery jsonp অনুরোধ ব্যবহার করে:
<script type="text/javascript">
$.ajax({
type:'GET',
url: 'http://vimeo.com/api/v2/video/' + video_id + '.json',
jsonp: 'callback',
dataType: 'jsonp',
success: function(data){
var thumbnail_src = data[0].thumbnail_large;
$('#thumb_wrapper').append('<img src="' + thumbnail_src + '"/>');
}
});
</script>
<div id="thumb_wrapper"></div>
<div id='12345678' class='vimeo_thumb'></div>
- এবং এটি থাম্বনেইল ইমগ দিয়ে পূর্ণ হবে।
$.getJSON('http://vimeo.com/api/v2/video/' + video_id + '.json?callback=?', function (data) {...
রুবি দিয়ে আপনি নিম্নলিখিতটি করতে পারেন, যদি বলুন:
url = "http://www.vimeo.com/7592893"
vimeo_video_id = url.scan(/vimeo.com\/(\d+)\/?/).flatten.to_s # extract the video id
vimeo_video_json_url = "http://vimeo.com/api/v2/video/%s.json" % vimeo_video_id # API call
# Parse the JSON and extract the thumbnail_large url
thumbnail_image_location = JSON.parse(open(vimeo_video_json_url).read).first['thumbnail_large'] rescue nil
require 'open-uri'
ইউআরআই এর পাশাপাশি ফাইলগুলি পার্স করার জন্য উন্মুক্ত অনুমতি দেওয়ার প্রয়োজন হতে পারে ।
সিএস ব্যবহার করে কীভাবে একই জিনিস এএসপি ডটনেটে করা যায় তার একটি উদাহরণ এখানে। একটি পৃথক ত্রুটি ধরা চিত্র ব্যবহার করতে নির্দ্বিধায় :)
public string GetVimeoPreviewImage(string vimeoURL)
{
try
{
string vimeoUrl = System.Web.HttpContext.Current.Server.HtmlEncode(vimeoURL);
int pos = vimeoUrl.LastIndexOf(".com");
string videoID = vimeoUrl.Substring(pos + 4, 8);
XmlDocument doc = new XmlDocument();
doc.Load("http://vimeo.com/api/v2/video/" + videoID + ".xml");
XmlElement root = doc.DocumentElement;
string vimeoThumb = root.FirstChild.SelectSingleNode("thumbnail_medium").ChildNodes[0].Value;
string imageURL = vimeoThumb;
return imageURL;
}
catch
{
//cat with cheese on it's face fail
return "http://bestofepicfail.com/wp-content/uploads/2008/08/cheese_fail.jpg";
}
}
দ্রষ্টব্য: অনুরোধ করা হলে আপনার এপিআই অনুরোধটি পছন্দ করতে হবে: http://vimeo.com/api/v2/video/32660708.xML
public static string GetVimeoPreviewImage(string id) { try { XmlDocument doc = new XmlDocument(); doc.Load("http://vimeo.com/api/v2/video/" + id + ".xml"); return doc.DocumentElement.FirstChild.SelectSingleNode("thumbnail_medium").ChildNodes[0].Value; } catch { return string.Empty; } }
থাম্বনেইলটি খুঁজে পাওয়ার সবচেয়ে সহজ জাভাস্ক্রিপ্ট উপায়, ভিডিও আইডি অনুসন্ধান না করে ব্যবহার করা হচ্ছে:
//Get the video thumbnail via Ajax
$.ajax({
type:'GET',
url: 'https://vimeo.com/api/oembed.json?url=' + encodeURIComponent(url),
dataType: 'json',
success: function(data) {
console.log(data.thumbnail_url);
}
});
দ্রষ্টব্য: কারও যদি ভিডিও আইডির সাথে সম্পর্কিত ভিডিও থাম্বনেলটি পেতে হয় তবে সে ভিডিও আইডি $id
দিয়ে প্রতিস্থাপন করতে পারে এবং ভিডিও বিশদ সহ একটি এক্সএমএল পেতে পারে:
http://vimeo.com/api/v2/video/$id.xml
উদাহরণ:
http://vimeo.com/api/v2/video/198340486.xml
$id
এবং আপনি ভিডিওর বিশদ সহ একটি এক্সএমএল পাবেন (থাম্বনেইল অন্তর্ভুক্ত)। http://vimeo.com/api/v2/video/$id.xml
। উদাহরণস্বরূপ: http://vimeo.com/api/v2/video/198340486.xml
। উত্স এখানে: coderwall.com/p/fdrdmg/get-a-thumbnail-from-a-vimeo-video
আপনি যদি খাঁটি জেএস / জ্যাকিউরি নো এপি মাধ্যমে থ্রুমনেল ব্যবহার করতে চান, আপনি ভিডিও এবং ভয়েলা থেকে কোনও ফ্রেম ক্যাপচার করতে এই সরঞ্জামটি ব্যবহার করতে পারেন! ইউআরএল থাম্বটি Inোকান যা আপনার পছন্দসই উত্স।
এখানে একটি কোড পেন:
<img src="https://i.vimeocdn.com/video/531141496_640.jpg"` alt="" />
থাম্বনেল পেতে সাইটটি এখানে:
ভিমেও ইউআরএল ( https://player.vimeo.com/video/30572181 ) ব্যবহার করে , এখানে আমার উদাহরণ
<!DOCTYPE html>
<html lang="en" xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta charset="utf-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<script src="http://code.jquery.com/jquery-latest.min.js" type="text/javascript"></script>
<title>Vimeo</title>
</head>
<body>
<div>
<img src="" id="thumbImg">
</div>
<script>
$(document).ready(function () {
var vimeoVideoUrl = 'https://player.vimeo.com/video/30572181';
var match = /vimeo.*\/(\d+)/i.exec(vimeoVideoUrl);
if (match) {
var vimeoVideoID = match[1];
$.getJSON('http://www.vimeo.com/api/v2/video/' + vimeoVideoID + '.json?callback=?', { format: "json" }, function (data) {
featuredImg = data[0].thumbnail_large;
$('#thumbImg').attr("src", featuredImg);
});
}
});
</script>
</body>
</html>
দেখে মনে হচ্ছে এপি / ভি 2 মারা গেছে।
অর্ডার নতুন API ব্যবহার করার জন্য, আপনি প্রয়োজন আপনার আবেদন রেজিস্টার করো , এবং করুন Base64- এনকোড client_id
এবং client_secret
একটি অনুমোদন হেডার হিসাবে।
$.ajax({
type:'GET',
url: 'https://api.vimeo.com/videos/' + video_id,
dataType: 'json',
headers: {
'Authorization': 'Basic ' + window.btoa(client_id + ":" + client_secret);
},
success: function(data) {
var thumbnail_src = data.pictures.sizes[2].link;
$('#thumbImg').attr('src', thumbnail_src);
}
});
সুরক্ষার জন্য, আপনি সার্ভার থেকে ইতিমধ্যে client_id
এবং client_secret
এনকোড থাকা ফিরে আসতে পারেন ।
এটি এটি করার একটি চতুর কৌশল এবং কাস্টম আকার বাছাই করার একটি উপায় to
আমি এখানে যাই:
http://vimeo.com/api/v2/video/[VIDEO ID].php
ফাইলটি ডাউনলোড করুন, এটি খুলুন এবং 40৪০ পিক্সেল প্রশস্ত থাম্বনেইল সন্ধান করুন এটির মতো ফর্ম্যাট থাকবে:
https://i.vimeocdn.com/video/[LONG NUMBER HERE]_640.jpg
আপনি লিঙ্কটি ধরেন, 640 এর জন্য পরিবর্তন করুন - উদাহরণস্বরূপ - 1400 এবং আপনি এরকম কিছু দিয়ে শেষ করেছেন:
https://i.vimeocdn.com/video/[LONG NUMBER HERE]_1400.jpg
এটি আপনার ব্রাউজার অনুসন্ধান বারে আটকান এবং উপভোগ করুন।
চিয়ার্স,
function parseVideo(url) {
// - Supported YouTube URL formats:
// - http://www.youtube.com/watch?v=My2FRPA3Gf8
// - http://youtu.be/My2FRPA3Gf8
// - https://youtube.googleapis.com/v/My2FRPA3Gf8
// - Supported Vimeo URL formats:
// - http://vimeo.com/25451551
// - http://player.vimeo.com/video/25451551
// - Also supports relative URLs:
// - //player.vimeo.com/video/25451551
url.match(/(http:|https:|)\/\/(player.|www.)?(vimeo\.com|youtu(be\.com|\.be|be\.googleapis\.com))\/(video\/|embed\/|watch\?v=|v\/)?([A-Za-z0-9._%-]*)(\&\S+)?/);
if (RegExp.$3.indexOf('youtu') > -1) {
var type = 'youtube';
} else if (RegExp.$3.indexOf('vimeo') > -1) {
var type = 'vimeo';
}
return {
type: type,
id: RegExp.$6
};
}
function getVideoThumbnail(url, cb) {
var videoObj = parseVideo(url);
if (videoObj.type == 'youtube') {
cb('//img.youtube.com/vi/' + videoObj.id + '/maxresdefault.jpg');
} else if (videoObj.type == 'vimeo') {
$.get('http://vimeo.com/api/v2/video/' + videoObj.id + '.json', function(data) {
cb(data[0].thumbnail_large);
});
}
}
আসলে যে ছেলেটি এই প্রশ্নটি করেছিল সে তার নিজের উত্তর পোস্ট করেছিল।
"ভিওমো মনে করে যে আমি এইচটিটিপি অনুরোধ করব এবং তারা ফিরে আসা এক্সএমএল থেকে থাম্বনেইল ইউআরএল বের করবে ..."
ভিমেও এপিআই ডক্স এখানে রয়েছে: http://vimeo.com/api/docs/simple-api
সংক্ষেপে, আপনার অ্যাপ্লিকেশনটির নীচের মত একটি URL এ একটি জিইটি অনুরোধ করা প্রয়োজন:
http://vimeo.com/api/v2/video/video_id.output
এবং আপনার প্রয়োজনীয় থাম্বনেইল ইউআরএল পেতে ফেরত ডেটা পার্স করুন, তারপরে সেই URL এ ফাইলটি ডাউনলোড করুন।
আমি পিএইচপি-তে একটি ফাংশন লিখেছি যাতে এটি আমার কাছে যায়, আমি আশা করি এটি কারওর জন্য কার্যকর। থাম্বনেইলে যাওয়ার পথটি ভিডিও পৃষ্ঠায় একটি লিঙ্ক ট্যাগের মধ্যে রয়েছে। এটি আমার জন্য কৌশলটি বলে মনে হচ্ছে।
$video_url = "http://vimeo.com/7811853"
$file = fopen($video_url, "r");
$filedata = stream_get_contents($file);
$html_content = strpos($filedata,"<link rel=\"videothumbnail");
$link_string = substr($filedata, $html_content, 128);
$video_id_array = explode("\"", $link_string);
$thumbnail_url = $video_id_array[3];
echo $thumbnail_url;
আশা করি এটি যে কাউকে সাহায্য করবে।
Foggson
function getVimeoInfo($link)
{
if (preg_match('~^http://(?:www\.)?vimeo\.com/(?:clip:)?(\d+)~', $link, $match))
{
$id = $match[1];
}
else
{
$id = substr($link,10,strlen($link));
}
if (!function_exists('curl_init')) die('CURL is not installed!');
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "http://vimeo.com/api/v2/video/$id.php");
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_TIMEOUT, 10);
$output = unserialize(curl_exec($ch));
$output = $output[0];
curl_close($ch);
return $output;
}`
// নীচে ফাংশন থাম্বনেল ইউআরএল পাস।
function save_image_local($thumbnail_url)
{
//for save image at local server
$filename = time().'_hbk.jpg';
$fullpath = '../../app/webroot/img/videos/image/'.$filename;
file_put_contents ($fullpath,file_get_contents($thumbnail_url));
return $filename;
}
কার্তিকেইন পি এর উত্তরটি দ্রবীভূত করছে যাতে এটি দৃশ্যের বিস্তৃত বিন্যাসে ব্যবহার করা যেতে পারে:
// Requires jQuery
function parseVimeoIdFromUrl(vimeoUrl) {
var match = /vimeo.*\/(\d+)/i.exec(vimeoUrl);
if (match)
return match[1];
return null;
};
function getVimeoThumbUrl(vimeoId) {
var deferred = $.Deferred();
$.ajax(
'//www.vimeo.com/api/v2/video/' + vimeoId + '.json',
{
dataType: 'jsonp',
cache: true
}
)
.done(function (data) {
// .thumbnail_small 100x75
// .thumbnail_medium 200x150
// 640 wide
var img = data[0].thumbnail_large;
deferred.resolve(img);
})
.fail(function(a, b, c) {
deferred.reject(a, b, c);
});
return deferred;
};
একটি ভিমেও ভিডিও URL থেকে একটি ভিমেও আইডি পান:
var vimeoId = parseVimeoIdFromUrl(vimeoUrl);
একটি ভিমেও আইডি থেকে একটি ভিমেও থাম্বনেইল URL পান:
getVimeoThumbUrl(vimeoIds[0])
.done(function(img) {
$('div').append('<img src="' + img + '"/>');
});
হালনাগাদ: এই সমাধানটি ডিসেম্বর 2018 পর্যন্ত কাজ করা বন্ধ করে দিয়েছে।
আমি একই জিনিসটির সন্ধান করছিলাম এবং দেখে মনে হচ্ছে যে এখানে বেশিরভাগ উত্তরগুলি পুরানো হয়ে গেছে কারণ ভিমেও এপিআই ভি 2 অবমূল্যায়নের কারণে।
আমার পিএইচপি 2 ¢:
$vidID = 12345 // Vimeo Video ID
$tnLink = json_decode(file_get_contents('https://vimeo.com/api/oembed.json?url=https%3A//vimeo.com/' . $vidID))->thumbnail_url;
উপরের সাহায্যে আপনি ভিমেও ডিফল্ট থাম্বনেইল চিত্রের লিঙ্কটি পাবেন।
আপনি যদি বিভিন্ন আকারের চিত্র ব্যবহার করতে চান তবে আপনি এর মতো কিছু যুক্ত করতে পারেন:
$tnLink = substr($tnLink, strrpos($tnLink, '/') + 1);
$tnLink = substr($tnLink, 0, strrpos($tnLink, '_')); // You now have the thumbnail ID, which is different from Video ID
// And you can use it with link to one of the sizes of crunched by Vimeo thumbnail image, for example:
$tnLink = 'https://i.vimeocdn.com/filter/overlay?src0=https%3A%2F%2Fi.vimeocdn.com%2Fvideo%2F' . $tnLink . '_1280x720.jpg&src1=https%3A%2F%2Ff.vimeocdn.com%2Fimages_v6%2Fshare%2Fplay_icon_overlay.png';
আপনার যদি অটোমেটেড সমাধানের প্রয়োজন না হয় তবে আপনি ভিউমো আইডি এখানে প্রবেশ করে থাম্বনেইল URL খুঁজে পাবেন: http://video.depone.eu/
আমি একটি কোডপেন তৈরি করেছি যা আপনার জন্য চিত্রগুলি আনবে।
এইচটিএমএল
<input type="text" id="vimeoid" placeholder="257314493" value="257314493">
<button id="getVideo">Get Video</button>
<div id="output"></div>
javascript:
const videoIdInput = document.getElementById('vimeoid');
const getVideo = document.getElementById('getVideo');
const output = document.getElementById('output');
function getVideoThumbnails(videoid) {
fetch(`https://vimeo.com/api/v2/video/${videoid}.json`)
.then(response => {
return response.text();
})
.then(data => {
const { thumbnail_large, thumbnail_medium, thumbnail_small } = JSON.parse(data)[0];
const small = `<img src="${thumbnail_small}"/>`;
const medium = `<img src="${thumbnail_medium}"/>`;
const large = `<img src="${thumbnail_large}"/>`;
output.innerHTML = small + medium + large;
})
.catch(error => {
console.log(error);
});
}
getVideo.addEventListener('click', e => {
if (!isNaN(videoIdInput.value)) {
getVideoThumbnails(videoIdInput.value);
}
});
আপনি যদি কোনও বিকল্প সমাধান খুঁজছেন এবং ভিওমো অ্যাকাউন্ট পরিচালনা করতে পারেন অন্য উপায়, আপনি কেবল অ্যালবামে দেখাতে চান এমন প্রতিটি ভিডিও যুক্ত করুন এবং তারপরে অ্যালবামের বিশদটি অনুরোধ করার জন্য API ব্যবহার করুন - এটি সমস্ত থাম্বনেইল এবং লিঙ্কগুলি দেখায় । এটি আদর্শ নয় তবে সাহায্য করতে পারে।
@Vimeoapi এর সাথে টুইটার কনভো
আপনি ম্যাট হুকসের রত্নটি একবার দেখে নিতে পারেন। https://github.com/matthooks/vimeo
এটি এপিআইয়ের জন্য একটি সহজ ভিমেও র্যাপার সরবরাহ করে।
আপনার যা যা দরকার তা হ'ল ভিডিও_আইডি (এবং সরবরাহকারী যদি আপনি অন্যান্য ভিডিও সাইটগুলিও করেন তবে) সঞ্চয় করতে হবে
আপনি যেমন ভিমেও ভিডিও আইডি বের করতে পারেন
def
get_vimeo_video_id (link)
vimeo_video_id = nil
vimeo_regex = /http:\/\/(www\.)?vimeo.com\/(\d+)($|\/)/
vimeo_match = vimeo_regex.match(link)
if vimeo_match.nil?
vimeo_regex = /http:\/\/player.vimeo.com\/video\/([a-z0-9-]+)/
vimeo_match = vimeo_regex.match(link)
end
vimeo_video_id = vimeo_match[2] unless vimeo_match.nil?
return vimeo_video_id
end
এবং আপনার যদি আপনার নল প্রয়োজন হয় তবে আপনি এই দরকারী দেখতে পাবেন
def
get_youtube_video_id (link)
youtube_video_id = nil
youtube_regex = /^(https?:\/\/)?(www\.)?youtu.be\/([A-Za-z0-9._%-]*)(\&\S+)?/
youtube_match = youtube_regex.match(link)
if youtube_match.nil?
youtubecom_regex = /^(https?:\/\/)?(www\.)?youtube.com\/watch\?v=([A-Za-z0-9._%-]*)(\&\S+)?/
youtube_match = youtubecom_regex.match(link)
end
youtube_video_id = youtube_match[3] unless youtube_match.nil?
return youtube_video_id
end
যারা এখনও ইউটিউবের মতো থাম্বনেইলটি পেতে কেবল ইউটিউবের মতো একটি উপায় চান, কেবল একটি বিল্ট একটি ছোট অ্যাপ্লিকেশন যা এটি কেবল ভিমেও আইডি দিয়ে এনেছে।
https://vumbnail.now.sh/358629078.jpg
আপনার ভিডিও আইডিটি কেবল প্লাগ ইন করুন এবং এটি এটি টানতে এবং 24 ঘন্টা এটি ক্যাশে করবে যাতে এটি দ্রুত পরিবেশন করে।
আপনি যদি নিজের মতো করে ঘুরে দেখতে চান তবে আপনি এখানে এটি করতে পারেন ।
আমার মতো কারও জন্য যারা সম্প্রতি এটি বের করার চেষ্টা করছে,
https://i.vimeocdn.com/video/[video_id]_[dimension].webp
আমার জন্য কাজ কর.
(যেখানে dimension
= 200x150 | 640)