Dapatkan gambar mini img dari Vimeo?

308

Saya ingin mendapatkan gambar mini untuk video dari Vimeo.

Saat mendapatkan gambar dari Youtube, saya hanya melakukan ini:

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

Adakah yang harus dilakukan untuk Vimeo?

Ini pertanyaan yang sama, tanpa jawaban apa pun.

Johan
sumber
3
Apakah Anda memeriksa apakah legal untuk mendapatkan gambar-gambar ini untuk digunakan di situs Anda? Jika tidak, maka ini adalah poin yang bisa diperdebatkan.
lothar
12
Ya, itu legal - kedua situs web menyediakan perincian ini dengan cara yang sangat umum, karena mereka ingin Anda menggunakan konten mereka! Toh semua video yang disematkan kembali ke situs hosting.
Magnus Smith
1
Jika Anda ingin memastikan halaman Anda tidak bergantung pada server vimeo, dan kinerja dioptimalkan saya sarankan Anda melakukannya dalam javascript. Kelemahannya adalah itu tidak akan menunjukkan ibu jari untuk pengguna tanpa javascript, tetapi placeholder yang sesuai dengan tautan harus cukup ramah. (ubah .xml ke .json atas permintaan api Anda untuk vimeo)
Myster
coba jawaban ini: stackoverflow.com/a/17156853/146602 - membuatnya sangat mudah untuk mengambil info / data tentang video vimeo yang hanya memiliki URL.
phirschybar
1
i.vimeocdn.com/video/528073804_200x200.webp dengan cara ini Anda bisa mendapatkan gambar video
Pus

Jawaban:

361

Dari dokumen Vimeo Simple API :

Membuat Permintaan Video

Untuk mendapatkan data tentang video tertentu, gunakan url berikut:

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

video_id ID video yang Anda inginkan informasinya.

output Tentukan tipe output. Kami saat ini menawarkan format JSON, PHP, dan XML.

Jadi, dapatkan URL ini 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>

Parsing ini untuk setiap video untuk mendapatkan thumbnail

Berikut ini perkiraan kode dalam PHP

<?php

$imgid = 6271487;

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

echo $hash[0]['thumbnail_medium'];  
Halus
sumber
OK bagus. Saya tidak terbiasa dengan itu xml. Bagaimana saya bisa mendapatkan thumbnail_smalldengan php?
Johan
Untuk mendapatkannya dengan PHP, pertama-tama gunakan ekstensi php di URL seperti vimeo.com/api/v2/video/6271487.php , Anda akan diberikan file, baris pertama yang tampaknya berupa hash php bersambung, gunakan unserialize dan kemudian cukup membaca entri yang Anda inginkan
Fluffy
1
Terima kasih, url berfungsi dengan baik. juga, API di atas tidak berfungsi jadi buka vimeo.com/api untuk membacanya.
fedmich
5
Anda juga dapat mengubah ukuran gambar dan jenis file gambar. Misalnya, Anda dapat mengubah default thumbnail_largedari i.vimeocdn.com/video/23566238_640.webp menjadi i.vimeocdn.com/video/23566238_640.png atau i.vimeocdn.com/video/23566238_320.jpg
Michael McGinnis
28
Karena API sudah mati, jawaban ini tidak lagi valid
KnF
58

Dalam javascript (menggunakan 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);
}

Untuk menampilkannya:

<img id="vimeo-{{ video.id_video }}" src="" alt="{{ video.title }}" />
<script type="text/javascript">
  vimeoLoadingThumb({{ video.id_video }});
</script>
Natim
sumber
Terima kasih banyak untuk ini, sangat membantu. Saya pikir ada satu kesalahan ketik yang sangat kecil. Anda menggunakan # dalam variabel id_img, tetapi belum mendapatkan # dalam id elemen img. Apakah contoh Anda mengasumsikan penggunaan jQuery juga? Saya mengganti $(id_img).beforedan $(id_img).attruntuk createElementdan yang lebih mendasar getElementById(id_img).src, tetapi tidak akan mendapatkannya sama sekali jika bukan untuk contoh Anda.
atomicules
3
Pertanyaan # adalah sintaks JQuery bukan bug. Ya itu menganggap penggunaan JQuery.
Natim
Ah, baiklah kalau begitu. Terimakasih atas klarifikasinya. Saya tidak sering menggunakan JQuery, tetapi jawabannya tetap sangat berguna bagi saya.
atomicules
1
Ini adalah jsfiddle yang dapat diuji untuk kode yang sama: jsfiddle.net/archatas/Tv7GZ
Aidas Bendoraitis
Terima kasih @idasBendoraitis
Natim
45

Anda harus menguraikan respons API Vimeo. Tidak ada cara untuk itu dengan panggilan URL (seperti dailymotion atau youtube).

Inilah solusi PHP saya:

/**
 * 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;
}
Erdal G.
sumber
3
Terima kasih untuk ini. Ini adalah solusi favorit saya.
Bullyen
44

Menggunakan jQuery jsonp request:

<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>
elatonsev
sumber
1
Saya ingin menggunakan ini ... tetapi bagaimana jika saya memiliki beberapa video pada satu halaman? Adakah cara untuk meneruskan id ke panggilan? Idealnya saya ingin menggunakan sesuatu seperti <div id='12345678' class='vimeo_thumb'></div>- dan itu akan diisi dengan thumbnail img.
Dan
4
Panggilan metode dapat disingkat seperti$.getJSON('http://vimeo.com/api/v2/video/' + video_id + '.json?callback=?', function (data) {...
Sanghyun Lee
22

Dengan Ruby, Anda dapat melakukan hal berikut jika Anda memiliki, katakan:

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
Michel Barbosa
sumber
2
Catatan: Anda mungkin perlu require 'open-uri'membolehkan file URI dan parse terbuka untuk diurai.
Kris
Saya harus menambahkan url.scan (/vimeo.com \ / (\ d +) \ /? /). Flatten.to_s.delete ("^ 0-9.") Untuk mendapatkan ID vimeo #
Abram
21

Berikut adalah contoh cara melakukan hal yang sama di ASP.NET menggunakan C #. Jangan ragu untuk menggunakan gambar hasil tangkapan yang berbeda :)

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

CATATAN: Permintaan API Anda harus seperti ini ketika diminta: http://vimeo.com/api/v2/video/32660708.xml

Mtblewis
sumber
Bagus, tetapi tautan API hanya vimeo.com/api/v2/video/video_id.xml bukan "video" di depan ID video.
Martin
Persingkat kode ini, dan ubah param untuk menerima vimeo id alih-alih URL lengkap. (tidak tahu bagaimana cara multiline blok kode) 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; } }
elkaz
14

Cara JavaScript termudah yang saya temukan untuk mendapatkan thumbnail, tanpa mencari id video menggunakan:

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

Catatan: Jika seseorang perlu mendapatkan thumbnail video yang terkait dengan id video, ia dapat mengganti $iddengan id video dan mendapatkan XML dengan detail video:

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

Contoh:

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

Sumber

Roy Shoa
sumber
2
Ini benar-benar jawaban terbaik karena Vimeo tidak lagi menggunakan api v2. oEmbed tidak memerlukan otentikasi dan mengembalikan respons JSON / XML yang berisi url thumbnail. developer.vimeo.com/apis/oembed
joemaller
1
Roy bagaimana kita menggunakan panggilan ajax ini ketika mencari video dengan ID tertentu?
klewis
@blackhawk saya tidak, tapi saya google sekarang dan menemukan sesuatu untuk Anda, cukup ganti video_id dengan Anda $iddan Anda akan mendapatkan XML dengan detail video (termasuk thumbnail). http://vimeo.com/api/v2/video/$id.xml. misalnya: http://vimeo.com/api/v2/video/198340486.xml. Sumber ada di sini: coderwall.com/p/fdrdmg/get-a-thumbnail-dari-a-vimeo-video
Roy Shoa
@blackhawk saya mengedit jawaban saya, Anda bisa melihatnya sekarang. Terima kasih!
Roy Shoa
11

Jika Anda ingin menggunakan thumbnail melalui js / jquery no api murni, Anda dapat menggunakan alat ini untuk mengambil bingkai dari video dan voila! Masukkan jempol url di sumber yang Anda sukai.

Berikut ini adalah kode pena:

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

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

Inilah situs untuk mendapatkan thumbnail:

http://video.depone.eu/

alphapilgrim
sumber
1
Situs @blackhawk kembali.
alphapilgrim
Sepertinya ini mendapat bingkai acak, bukan sampul / gambar mini resmi yang dipilih pembuat video. Senang mengetahui ini ada, tapi saya pikir saya akan menggunakan metode API json parse karena tidak ada kontrol cover art dari sisi vimeo hal-hal dengan ini.
squarecandy
9

Menggunakan url Vimeo ( https://player.vimeo.com/video/30572181 ), berikut adalah contoh saya

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

Karthikeyan P
sumber
Kamu yang terbaik.
Alexandr Kazakov
7

Sepertinya api / v2 sudah mati.
Untuk menggunakan API baru, Anda harus mendaftarkan aplikasi Anda , dan base64 menyandikan client_iddan client_secretsebagai header Otorisasi.

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

Untuk keamanan, Anda dapat mengembalikan client_iddan client_secretsudah dikodekan dari server.

Diego Ponciano
sumber
1
base64 bukan hash. Tidak ada yang lebih "aman" tentang pengkodean base64 data Anda di server daripada pengkodean di sisi klien. Yang mengatakan, kemungkinan agak lebih cepat.
Sumurai8
7

Ini adalah cara licik yang cepat untuk melakukannya, dan juga cara untuk memilih ukuran khusus.

Saya pergi ke sini:

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

Unduh file, buka, dan temukan thumbnail lebar 640 piksel, itu akan memiliki format seperti:

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

Anda mengambil tautan, ubah 640 untuk - misalnya - 1400, dan Anda berakhir dengan sesuatu seperti ini:

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

Rekatkan di bilah pencarian browser Anda dan nikmatilah.

Bersulang,

Kacang kacangan
sumber
Metode ini tidak berfungsi. Mengembalikan file php dengan VIDEO_ID tidak ditemukan.
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);
        });
    }
}
Yangshun Tay
sumber
4

Sebenarnya pria yang menanyakan pertanyaan itu memposting jawabannya sendiri.

"Vimeo sepertinya ingin aku membuat permintaan HTTP, dan mengekstrak URL thumbnail dari XML yang mereka kembalikan ..."

Dokumen Vimeo API ada di sini: http://vimeo.com/api/docs/simple-api

Singkatnya, aplikasi Anda perlu membuat permintaan GET ke URL seperti berikut ini:

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

dan parsing data yang dikembalikan untuk mendapatkan URL thumbnail yang Anda butuhkan, kemudian unduh file di URL itu.

Ian Kemp
sumber
4

Saya menulis fungsi dalam PHP untuk membiarkan saya melakukan ini, saya harap ini berguna bagi seseorang. Jalur ke thumbnail terdapat di dalam tag tautan di halaman video. Ini sepertinya melakukan trik untuk saya.

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

Semoga ini bisa membantu siapa saja.

Foggson

pengguna342430
sumber
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;
}`

// pada fungsi di bawah ini, lewati url thumbnail.

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;
    }
chetanspeed511987
sumber
4

Menguraikan jawaban Karthikeyan P sehingga dapat digunakan dalam berbagai skenario:

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

Pemakaian

Dapatkan Id Vimeo dari URL video Vimeo:

var vimeoId = parseVimeoIdFromUrl(vimeoUrl);

Dapatkan URL gambar mini vimeo dari Vimeo Id:

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

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

Chris Moschini
sumber
4

UPDATE: Solusi ini berhenti berfungsi pada Desember 2018.

Saya sedang mencari hal yang sama dan sepertinya sebagian besar jawaban di sini sudah usang karena Vimeo API v2 sudah usang.

php 2 ¢ saya:

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

dengan di atas Anda akan mendapatkan tautan ke gambar mini default Vimeo.

Jika Anda ingin menggunakan gambar dengan ukuran berbeda, Anda dapat menambahkan sesuatu seperti:

$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';
zee
sumber
Tolong bisakah Anda membantu saya dengan tautan pengumuman resmi yang menyebutkan v2 vimeo sudah tidak digunakan lagi.
Deepak Yadav
3

Jika Anda tidak memerlukan solusi otomatis, Anda dapat menemukan URL thumbnail dengan memasukkan ID vimeo di sini: http://video.depone.eu/

Emily Ryan
sumber
Ada jawaban lain seperti ini di halaman ini di atas.
alphapilgrim
2

Saya membuat CodePen yang mengambil gambar untuk Anda.

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

masukkan deskripsi gambar di sini

Israel Morales
sumber
1

Jika Anda mencari solusi alternatif dan dapat mengelola akun vimeo ada cara lain, Anda cukup menambahkan setiap video yang ingin Anda tampilkan ke dalam album dan kemudian menggunakan API untuk meminta detail album - itu kemudian menampilkan semua thumbnail dan tautan . Ini tidak ideal tetapi mungkin membantu.

API end point (taman bermain)

Twitter obrolan dengan @vimeoapi

sidonaldson
sumber
Ini mungkin bukan cara yang paling efisien untuk melakukannya, terutama jika (1) sisa kode Anda tidak bergantung pada Vimeo API, dan (2) Anda memiliki perasaan yang bagus bahwa panggilan API Anda mungkin melampaui apa yang dimiliki Vimeo ditetapkan sebagai batas.
klewis
@blackhawk Anda melewatkan poin saya. Itu alternatif. Jika Anda melakukan ini, Anda memiliki semua video Anda dalam satu panggilan API. Anda dapat men-cache sisi server itu misalnya.
sidonaldson
1

Anda mungkin ingin melihat permata dari Matt Hooks. https://github.com/matthooks/vimeo

Ini memberikan pembungkus vimeo sederhana untuk api.

Yang Anda perlukan hanyalah menyimpan video_id (dan penyedia jika Anda juga melakukan situs video lainnya)

Anda dapat mengekstrak id video vimeo seperti itu

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

dan jika Anda membutuhkan tabung Anda mungkin menemukan ini berguna

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
Agustin
sumber
0

Bagi mereka yang masih menginginkan cara untuk mendapatkan thumbnail melalui URL saja, sama seperti Youtube, sebuah aplikasi kecil yang dibuat hanya dengan Vimeo ID.

https://vumbnail.com/358629078.jpg

Cukup sambungkan ID video Anda dan itu akan menariknya dan menyimpannya selama 24 jam sehingga berfungsi cepat.

Jika Anda ingin memutar sendiri, Anda dapat melakukannya di sini .

Repo

Sam Carlton
sumber
-3

Untuk seseorang seperti saya yang mencoba mencari tahu ini baru-baru ini,

https://i.vimeocdn.com/video/[video_id]_[dimension].webp bekerja untukku.

(di mana dimension= 200x150 | 640)

novasaint
sumber
1
Temuan yang bagus. Ini sangat bersih.
Ben Harrison
Hebat kecuali safari di iOS tidak menampilkan webp
Gregory Magarshak
9
Ini tampaknya salah - saya mendapatkan gambar yang tidak ada hubungannya dengan video yang sebenarnya. Id yang digunakan dalam url ibu jari berbeda dari id video - jika Anda memanggil api Anda akan mendapatkan url ini dengan id yang berbeda. Tidak ada jalan pintas dari memanggil api.
Morten Holmgaard
12
Itu tidak berfungsi, video_id dan image_id tidak sama. Jadi Anda akan mendapatkan gambar yang bukan milik video yang Anda minta
Nicolas Azrak
Video Id dan Id dalam thumbnail berbeda
Muhammad Hassaan