मैं Vimeo से वीडियो के लिए एक थंबनेल छवि प्राप्त करना चाहता हूं।
जब मैं Youtube से चित्र प्राप्त करता हूं तो मैं इस तरह से करता हूं:
http://img.youtube.com/vi/HwP5NG-3e8I/2.jpg
किसी भी विचार Vimeo के लिए कैसे करना है?
मैं Vimeo से वीडियो के लिए एक थंबनेल छवि प्राप्त करना चाहता हूं।
जब मैं Youtube से चित्र प्राप्त करता हूं तो मैं इस तरह से करता हूं:
http://img.youtube.com/vi/HwP5NG-3e8I/2.jpg
किसी भी विचार Vimeo के लिए कैसे करना है?
जवाबों:
से Vimeo सरल API डॉक्स :
वीडियो अनुरोध करना
किसी विशिष्ट वीडियो के बारे में डेटा प्राप्त करने के लिए, निम्न url का उपयोग करें:
http://vimeo.com/api/v2/video/video_id.output
video_id आप जिस वीडियो के लिए जानकारी चाहते हैं, उसकी आईडी।
आउटपुट आउटपुट प्रकार निर्दिष्ट करें। वर्तमान में हम JSON, PHP और XML प्रारूप प्रदान करते हैं।
तो इस 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 में अनुमानित कोड है
<?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
है, लेकिन सभी में यह मिल गया नहीं होता अगर यह आपके उदाहरण के लिए नहीं था।
आपको Vimeo की API की प्रतिक्रिया को पार्स करना चाहिए। URL कॉल (जैसे dailymotion या youtube) के साथ इसका कोई तरीका नहीं है।
यहाँ मेरा PHP समाधान है:
/**
* 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>
- और वह थंबनेल img से भर जाएगा।
$.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'
URI की फ़ाइलों के साथ-साथ पार्स करने की अनुमति देने की आवश्यकता हो सकती है ।
यहाँ एक उदाहरण दिया गया है कि ASP.NET का उपयोग C # में कैसे किया जाए। एक अलग त्रुटि पकड़ने वाली छवि का उपयोग करने के लिए स्वतंत्र महसूस करें :)
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/3266070.bml
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
साथ बदल सकता है और वीडियो के साथ XML प्राप्त कर सकता है:
http://vimeo.com/api/v2/video/$id.xml
उदाहरण:
http://vimeo.com/api/v2/video/198340486.xml
$id
और आपको वीडियो विवरण (थंबनेल शामिल करें) के साथ एक XML मिलेगा। 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
यदि आप शुद्ध js / jquery no api के माध्यम से थंबनेल का उपयोग करना चाहते हैं, तो आप इस उपकरण का उपयोग वीडियो और वॉइला से एक फ्रेम पर कब्जा करने के लिए कर सकते हैं! उरला अंगूठा लगाएं जिसमें आपको कभी भी स्रोत पसंद आए।
यहाँ एक कोड पेन है:
<img src="https://i.vimeocdn.com/video/531141496_640.jpg"` alt="" />
यहाँ थंबनेल पाने के लिए साइट है:
Vimeo url ( 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
पहले से ही सर्वर से इनकोडिंग।
यह इसे करने का एक त्वरित चालाक तरीका है, और कस्टम आकार चुनने का एक तरीका भी है।
मैं यहाँ जाता हूँ:
http://vimeo.com/api/v2/video/[VIDEO ID].php
फ़ाइल डाउनलोड करें, इसे खोलें, और 640 पिक्सेल चौड़ा थंबनेल खोजें, इसमें एक प्रारूप होगा जैसे:
https://i.vimeocdn.com/video/[LONG NUMBER HERE]_640.jpg
आप लिंक लेते हैं, उदाहरण के लिए - 1400 - के लिए 640 बदलें, और आप कुछ इस तरह से समाप्त करते हैं:
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);
});
}
}
दरअसल उस सवाल को पूछने वाले ने खुद अपना जवाब पोस्ट किया।
"Vimeo मुझे HTTP अनुरोध करने के लिए लगता है, और वे जिस XML से वापस आते हैं, थंबनेल URL निकालते हैं ..."
Vimeo API डॉक्स यहां हैं: http://vimeo.com/api/docs/simple-api
संक्षेप में, आपके एप्लिकेशन को निम्न जैसे URL के लिए GET अनुरोध करना होगा:
http://vimeo.com/api/v2/video/video_id.output
और आपके द्वारा आवश्यक थंबनेल URL प्राप्त करने के लिए दिए गए डेटा को पार्स करें, फिर उस URL पर फ़ाइल डाउनलोड करें।
मैंने PHP में एक फ़ंक्शन लिखा था मुझे इसे करने के लिए, मुझे आशा है कि किसी के लिए यह उपयोगी है। थंबनेल का रास्ता वीडियो पेज पर लिंक टैग के भीतर समाहित है। यह मेरे लिए चाल करने के लिए लगता है।
$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;
}`
// नीचे दिए गए फ़ंक्शन में थंबनेल url पास करें।
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;
};
Vimeo वीडियो URL से Vimeo Id प्राप्त करें:
var vimeoId = parseVimeoIdFromUrl(vimeoUrl);
Vimeo Id से vimeo थंबनेल URL प्राप्त करें:
getVimeoThumbUrl(vimeoIds[0])
.done(function(img) {
$('div').append('<img src="' + img + '"/>');
});
अद्यतन: इस समाधान ने दिसंबर 2018 तक काम करना बंद कर दिया।
मैं एक ही चीज की तलाश में था और ऐसा लगता है कि यहां ज्यादातर जवाब पुराने हैं क्योंकि वीमियो एपीआई वी 2 को अपदस्थ किया गया है।
मेरी php 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;
ऊपर आपको Vimeo डिफ़ॉल्ट थंबनेल छवि का लिंक मिलेगा।
यदि आप विभिन्न आकार की छवि का उपयोग करना चाहते हैं, तो आप कुछ ऐसा जोड़ सकते हैं:
$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';
यदि आपको एक स्वचालित समाधान की आवश्यकता नहीं है, तो आप यहाँ पर vimeo ID दर्ज करके थंबनेल URL पा सकते हैं: http://video.depone.eu/
मैंने एक CodePen बनाया है जो आपके लिए चित्र लाता है।
एचटीएमएल
<input type="text" id="vimeoid" placeholder="257314493" value="257314493">
<button id="getVideo">Get Video</button>
<div id="output"></div>
जावास्क्रिप्ट:
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);
}
});
यदि आप एक वैकल्पिक समाधान की तलाश कर रहे हैं और vimeo खाते का प्रबंधन कर सकते हैं तो दूसरा तरीका है, आप बस हर वीडियो को एक एल्बम में दिखाना चाहते हैं और फिर एल्बम विवरण का अनुरोध करने के लिए एपीआई का उपयोग करें - यह तब सभी थंबनेल और लिंक दिखाता है । यह आदर्श नहीं है, लेकिन मदद कर सकता है।
एपीआई अंत बिंदु (खेल का मैदान)
@Vimeoapi के साथ ट्विटर कोनोव
आप मैट हुक से मणि को देखना चाह सकते हैं। https://github.com/matthooks/vimeo
यह एपी के लिए एक सरल वीमो आवरण प्रदान करता है।
आपको केवल वीडियो_ड स्टोर करना है (और प्रदाता यदि आप अन्य वीडियो साइट भी कर रहे हैं)
आप इस तरह 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
उन लोगों के लिए जो अभी भी केवल URL के माध्यम से थंबनेल प्राप्त करने का एक तरीका चाहते हैं, जैसे कि Youtube, एक निर्मित छोटा अनुप्रयोग जो इसे केवल Vimeo ID के साथ प्राप्त करता है।
https://vumbnail.now.sh/358629078.jpg
बस अपने वीडियो आईडी में प्लग करें और यह इसे खींच लेगा और इसे 24 घंटे तक कैश करेगा ताकि यह तेजी से कार्य करे।
यदि आप अपने खुद के स्पिन करना चाहते हैं तो आप यहां ऐसा कर सकते हैं ।
मेरे जैसे किसी व्यक्ति के लिए जो हाल ही में यह पता लगाने की कोशिश कर रहा है,
https://i.vimeocdn.com/video/[video_id]_[dimension].webp
मेरे लिये कार्य करता है।
(जहां dimension
= 200x150 | 640)