Vimeo'dan img küçük resimleri almak ister misiniz?


308

Vimeo'dan videolar için küçük resim almak istiyorum.

Youtube'dan görüntü alırken sadece şunu yapıyorum:

http://img.youtube.com/vi/HwP5NG-3e8I/2.jpg

Vimeo için nasıl yapılacağına dair bir fikrin var mı?

İşte aynı soru, cevapsız.


3
Bu resimleri sitenizde kullanmanın yasal olup olmadığını kontrol ettiniz mi? Değilse, başlamak için tartışmalı bir nokta.
lothar

12
Evet, yasal - her iki web sitesi de içeriklerini kullanmanızı istedikleri için bu ayrıntıları çok halka açık bir şekilde sağlıyor! Tüm gömülü videolar sonuçta barındırma sitesine geri bağlanır.
Magnus Smith

1
Sayfanızın vimeo sunucusuna bağlı olmadığından ve performansın optimize edildiğinden emin olmak istiyorsanız, javascript'te yapmanızı öneririm. Dezavantajı, javascript içermeyen kullanıcılar için başparmak gösterilmeyecek, ancak bağlantıya sahip uygun bir yer tutucunun yeterince samimi olması gerekir. (vimeo'ya yönelik api isteğinizle .xml'yi .json olarak değiştirin)
Myster

şu yanıtı deneyin: stackoverflow.com/a/17156853/146602 - yalnızca URL'ye sahip herhangi bir vimeo videosu hakkında bilgi / veri almayı çok kolaylaştırır.
phirschybar

1
i.vimeocdn.com/video/528073804_200x200.webp Bu şekilde video görüntüsü alabilirsiniz
Pus

Yanıtlar:


361

Gönderen Vimeo Basit API docs :

Video İsteğinde Bulunma

Belirli bir video hakkında veri almak için aşağıdaki URL'yi kullanın:

http://vimeo.com/api/v2/video/video_id.output

video_id Bilgi almak istediğiniz videonun kimliği.

output Çıktı türünü belirleyin. Şu anda JSON, PHP ve XML formatları sunuyoruz.

Bu URL'yi almak 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>

Küçük resmi almak için her video için ayrıştırın

İşte PHP'de yaklaşık kod

<?php

$imgid = 6271487;

$hash = unserialize(file_get_contents("http://vimeo.com/api/v2/video/$imgid.php"));

echo $hash[0]['thumbnail_medium'];  

Tamam iyi. xmlYine de aşina değilim . Nasıl alabilirim thumbnail_smallile php?
Johan

PHP ile almak için, önce URL'de vimeo.com/api/v2/video/6271487.php gibi php uzantısını kullanın , size ilk satırı seri hale getirilmiş bir php hash gibi görünen bir dosya verilecektir, unserialize kullanın ve sonra sadece istediğiniz girişleri okuyun
Fluffy

1
Teşekkürler, url iyi çalışıyor. Ayrıca, yukarıdaki API çalışmaz, bu yüzden okumak için vimeo.com/api adresine gidin .
fedmich

5
Görüntü boyutunu ve görüntü dosyası türünü de değiştirebilirsiniz. Örneğin, varsayılan değiştirebilir thumbnail_largegelen i.vimeocdn.com/video/23566238_640.webp için i.vimeocdn.com/video/23566238_640.png veya i.vimeocdn.com/video/23566238_320.jpg
Michael McGinnis

28
API öldüğü için bu cevap artık geçerli değil
KnF

58

Javascript'te (jQuery kullanır):

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);
}

Görüntülemek için:

<img id="vimeo-{{ video.id_video }}" src="" alt="{{ video.title }}" />
<script type="text/javascript">
  vimeoLoadingThumb({{ video.id_video }});
</script>

Bunun için çok teşekkürler, çok yararlı. Bence çok küçük bir yazım hatası var. İd_img değişkenlerinde # kullanırsınız, ancak img öğesi kimliğinde # yoktur. Örneğiniz jQuery kullanımını da varsayıyor mu? Ben swopped $(id_img).beforeve $(id_img).attriçin createElementve daha temel getElementById(id_img).src, ama senin örneğin olmasaydı hiç got it olmazdı.
Mart'ta atomlar

3
# Soru JQuery sözdizimi bir hata değil. Evet, JQuery kullanımını varsayar.
Natim

Ah, tamam o zaman. Açıklama için teşekkürler. JQuery'yi bu kadar sık ​​kullanmıyorum, ancak cevap hala benim için gerçekten yararlıydı.
Mart'ta atomlar

1
Bu aynı kod için test edilebilir jsfiddle: jsfiddle.net/archatas/Tv7GZ
Aidas Bendoraitis

@AidasBendoraitis
Natim

45

Vimeo'nun API'sının yanıtını ayrıştırmalısınız. URL çağrılarıyla (dailymotion veya youtube gibi) bunun bir yolu yoktur.

İşte benim PHP çözümü:

/**
 * 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;
}

3
Bunun için teşekkür ederim. Bu benim en sevdiğim çözümdü.
Bullyen

44

JQuery jsonp isteğini kullanma:

<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>

1
Bunu kullanmak istiyorum ... ama bir sayfada birden fazla videom varsa? Kimliği aramaya geçirmenin bir yolu var mı? İdeal olarak <div id='12345678' class='vimeo_thumb'></div>- gibi bir şey kullanmak istiyorum ve bu img küçük resim ile dolu olur.
Dan

4
Yöntem çağrısı kısaltılabilir$.getJSON('http://vimeo.com/api/v2/video/' + video_id + '.json?callback=?', function (data) {...
Sanghyun Lee

22

Ruby ile, varsa şunları yapabilirsiniz:

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

2
Not: require 'open-uri'açık dosyaları URI'ların yanı sıra ayrıştırmaya da izin vermeniz gerekebilir .
Kris

. Ben url.scan (? /Vimeo.com \ / (\ d +) \ / /) flatten.to_s.delete eklemek zorunda vimeo ID # almak için ( "^ 0-9.")
Abram

21

Aynı şeyi ASP.NET'te C # kullanarak nasıl yapacağınıza bir örnek. Farklı bir hata yakalama resmi kullanmaktan çekinmeyin :)

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";
    }
}

NOT: API isteğiniz istendiğinde şu şekilde olmalıdır: http://vimeo.com/api/v2/video/32660708.xml


Güzel, ancak API bağlantısı yalnızca video kimliğinin önünde "video" değil , vimeo.com/api/v2/video/video_id.xml .
Martin

Bu kodu kısalttı ve parametreyi tam URL yerine bir vimeo kimliğini kabul edecek şekilde değiştirdi. (kod bloğunun çok satırlı nasıl yapılacağını 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; } }
anlayamıyorum

14

Video kimliğini aramadan küçük resmi almak için bulduğum en kolay JavaScript yolu kullanıyor:

//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);
    }
});

Not: Birinin video kimliğiyle ilgili video küçük resmini alması gerekiyorsa, video kimliğiyle değiştirebilir $idve video ayrıntılarını içeren bir XML alabilir:

http://vimeo.com/api/v2/video/$id.xml

Misal:

http://vimeo.com/api/v2/video/198340486.xml

Kaynak


2
Vimeo v2 api'yi kullanımdan kaldırdığı için bu gerçekten en iyi cevap. oEmbed kimlik doğrulaması gerektirmez ve küçük resim URL'leri içeren bir JSON / XML yanıtı döndürür. developer.vimeo.com/apis/oembed
joemaller

1
Roy kimliğe göre belirli bir video ararken bu ajax çağrısını nasıl kullanıyoruz?
klewis

@blackhawk Yapmıyorum, ama şimdi google ve sizin için bir şey buldum, sadece video_id ile değiştirin $idve video ayrıntılarını içeren bir XML alacaksınız (küçük resimler dahil). http://vimeo.com/api/v2/video/$id.xml. örneğin: http://vimeo.com/api/v2/video/198340486.xml. Kaynak burada: coderwall.com/p/fdrdmg/get-a-thumbnail-from-a-vimeo-video
Roy

@blackhawk Cevabımı düzenliyorum, şimdi görebilirsiniz. Teşekkürler!
Roy Shoa

11

Saf js / jquery no api aracılığıyla küçük resim kullanmak isterseniz, video ve voila'dan bir kare yakalamak için bu aracı kullanabilirsiniz! İstediğiniz kaynağı URL başlığını ekleyin.

İşte bir kod kalemi:

http://codepen.io/alphalink/pen/epwZpJ

<img src="https://i.vimeocdn.com/video/531141496_640.jpg"` alt="" />

Küçük resim alacak site:

http://video.depone.eu/


1
@blackhawk sitesi geri döndü.
alphapilgrim

Görünüşe göre bu video oluşturucunun seçtiği resmi kapak / küçük resim değil, rastgele bir kare alıyor. Bunun var olduğunu bilmek harika, ama API json ayrıştırma yöntemini kullanacağımı düşünüyorum çünkü kapak sanatının bununla ilgili vimeo tarafından kontrol edilmesi yok.
squarecandy

9

Vimeo url'sini ( https://player.vimeo.com/video/30572181 ) kullanarak , işte benim örneğim

<!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>


Sen en iyisin.
Alexandr Kazakov

7

Görünüşe göre api / v2 öldü.
Yeni API'yı kullanabilmek için uygulamanızı kaydettirmeniz ve base64 client_idve client_secretbir Yetkilendirme başlığı olarak kodlamanız gerekir .

$.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);
    }
});

Güvenlik için, sunucudan zaten kodlanmış client_idve client_secretşifrelenmiş olarak geri dönebilirsiniz .


1
base64 bir karma değildir. İstemci tarafında kodlama yerine sunucudaki verilerin base64 kodlaması hakkında daha "güvenli" bir şey yoktur. Bununla birlikte, muhtemelen biraz daha hızlı.
Sumurai8

7

Bu, bunu yapmanın hızlı bir kurnaz yolu ve ayrıca özel bir boyut seçmenin bir yoludur.

Buraya gidiyorum:

http://vimeo.com/api/v2/video/[VIDEO ID].php

Dosyayı indirin, açın ve 640 piksel genişliğindeki küçük resmi bulun, şöyle bir biçime sahip olacaktır:

https://i.vimeocdn.com/video/[LONG NUMBER HERE]_640.jpg

Bağlantıyı alırsınız, 640'ı değiştirin - örneğin - 1400 ve bunun gibi bir şeyle sonuçlanırsınız:

https://i.vimeocdn.com/video/[LONG NUMBER HERE]_1400.jpg

Tarayıcı arama çubuğunuza yapıştırın ve keyfini çıkarın.

Alkış,


Bu yöntem işe yaramıyor. VIDEO_ID bulunmayan bir php dosyası döndürür.
stldoug

5
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);
        });
    }
}

4

Aslında bu soruyu soran adam kendi cevabını gönderdi.

"Vimeo bir HTTP isteği yapmamı ve döndürdüğü XML'den küçük resim URL'sini çıkarmamı istiyor gibi görünüyor ..."

Vimeo API dokümanları burada: http://vimeo.com/api/docs/simple-api

Kısacası, uygulamanızın aşağıdaki gibi bir URL'ye GET isteği yapması gerekir:

http://vimeo.com/api/v2/video/video_id.output

ve istediğiniz küçük resim URL'sini almak için döndürülen verileri ayrıştırın, ardından dosyayı bu URL'den indirin.


4

PHP bunu bana izin bir işlev yazdı, umarım birisi için yararlıdır. Küçük resmin yolu video sayfasındaki bir bağlantı etiketinde bulunur. Bu benim için hile yapıyor gibi görünüyor.

    $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;

Umarım herkese yardımcı olur.

Foggson


4
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;
}`

// aşağıdaki işlevde küçük resim URL'sini iletin.

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;
    }

4

Karthikeyan P'nin cevabını daha geniş bir dizi senaryoda kullanılabilmesi için ayrıştırmak:

// 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;
};

kullanım

Bir Vimeo video URL'sinden Vimeo Kimliği alın:

var vimeoId = parseVimeoIdFromUrl(vimeoUrl);

Bir Vimeo Kimliğinden bir vimeo küçük resim URL'si alın:

getVimeoThumbUrl(vimeoIds[0])
.done(function(img) {
    $('div').append('<img src="' + img + '"/>');
});

https://jsfiddle.net/b9chris/nm8L8cc8/1/


4

GÜNCELLEME: Bu çözüm Aralık 2018 itibariyle çalışmayı durdurdu.

Aynı şeyi arıyordum ve çoğu cevap burada Vimeo API v2 kullanımdan kaldırıldığı için modası geçmiş gibi görünüyor.

benim 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;

yukarıdaki ile Vimeo varsayılan küçük resim bağlantısını alacaksınız.

Farklı boyutta görüntü kullanmak istiyorsanız, aşağıdakine benzer bir şey ekleyebilirsiniz:

$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';

Lütfen v2 vimeo'nun kullanımdan kaldırıldığı belirtilmiş herhangi bir resmi duyuru linkinde bana yardımcı olabilir misiniz?
Deepak Yadav


2

Görüntüleri sizin için alan bir CodePen oluşturdum.

https://codepen.io/isramv/pen/gOpabXg

HTML

<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);
  }
});

resim açıklamasını buraya girin


1

Alternatif bir çözüm arıyorsanız ve vimeo hesabını yönetmenin başka bir yolu varsa, sadece bir albüme göstermek istediğiniz her videoyu ekleyin ve ardından albüm ayrıntılarını istemek için API'yi kullanın - daha sonra tüm küçük resimleri ve bağlantıları gösterir . İdeal değil ama yardımcı olabilir.

API bitiş noktası (oyun alanı)

@Vimeoapi ile Twitter convo


Bu, belki de (1) kodunuzun geri kalanı Vimeo API'sına bağlı değilse ve (2) API çağrılarınızın Vimeo'nun ötesine geçebileceği konusunda iyi bir duyguya sahipseniz, bununla ilgili en etkili yol değildir. bir sınır koymak.
klewis

@blackhawk benim fikrimi kaçırdın. Alternatif. Bunu yaparsanız, tüm videolarınız tek bir API çağrısında olur. Örneğin, sunucu tarafını önbelleğe alabilirsiniz.
sidonaldson

1

Matt Hooks'tan gemiye bir göz atmak isteyebilirsiniz. https://github.com/matthooks/vimeo

API için basit bir vimeo sarıcı sağlar.

Tek ihtiyacınız olan video_id'i (ve başka video siteleri de kullanıyorsanız sağlayıcıyı) saklamaktır.

Vimeo video kimliğini bu şekilde çıkarabilirsiniz

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

ve eğer tüp gerekiyorsa bu yararlı bulabilirsiniz

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

0

Küçük resmi yalnızca URL yoluyla almanın bir yolunu isteyenler için, tıpkı Youtube gibi, sadece Vimeo ID ile getiren küçük bir uygulama oluşturdu.

https://vumbnail.com/358629078.jpg

Video kimliğinizi takmanız yeterlidir, çeker ve 24 saat önbelleğe alır, böylece hızlı hizmet eder.

Kendinizinkini çevirmek istiyorsanız, bunu burada yapabilirsiniz .

repo


-3

Son zamanlarda bunu anlamaya çalışan benim gibi biri için,

https://i.vimeocdn.com/video/[video_id]_[dimension].webp benim için çalışıyor.

(burada dimension= 200x150 | 640)


1
Güzel bulmak. Bu gerçekten temiz.
Ben Harrison

İOS'ta safari hariç harika webp göstermiyor
Gregory Magarshak 15:17

9
Bu yanlış görünüyor - gerçek video ile ilgisi olmayan bir resim elde ediyorum. Thumb url'de kullanılan kimlik video kimliğinden farklıdır - api'yi çağırırsanız bu url'yi farklı kimliklerle alırsınız. API'yi çağırmanın herhangi bir kısayolu yoktur.
Morten Holmgaard

12
Bu işe yaramaz, video_id ve image_id aynı değildir. Böylece, istediğiniz videoya ait olmayan bir görüntü elde edeceksiniz
Nicolas Azrak

Küçük resim kimliği ve kimliği farklı
Muhammed Hassaan
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.