Nhận hình thu nhỏ img từ Vimeo?


308

Tôi muốn có được một hình ảnh thu nhỏ cho video từ Vimeo.

Khi lấy hình ảnh từ Youtube tôi chỉ làm như thế này:

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

Bất cứ ý tưởng làm thế nào để làm cho Vimeo?

Đây là câu hỏi tương tự, không có câu trả lời.


3
Bạn có kiểm tra xem việc lấy những hình ảnh này để sử dụng chúng trên trang web của bạn là hợp pháp không? Nếu không thì đó là một điểm cần thiết để bắt đầu.
lothar

12
Vâng, đó là hợp pháp - cả hai trang web đều cung cấp các chi tiết này theo cách rất công khai, vì họ muốn bạn sử dụng nội dung của họ! Tất cả các video nhúng liên kết trở lại trang web lưu trữ sau khi tất cả.
Magnus Smith

1
Nếu bạn muốn đảm bảo trang của bạn không phụ thuộc vào máy chủ vimeo và hiệu suất được tối ưu hóa, tôi khuyên bạn nên làm điều đó trong javascript. Nhược điểm là nó sẽ không hiển thị ngón tay cái cho người dùng mà không có javascript, nhưng một trình giữ chỗ thích hợp với liên kết phải đủ thân thiện. (đổi .xml thành .json theo yêu cầu api của bạn thành vimeo)
Myster

hãy thử câu trả lời này: stackoverflow.com/a/17156853/146602 - giúp bạn dễ dàng lấy thông tin / dữ liệu về bất kỳ video vimeo nào chỉ có URL.
phirschybar

1
i.vimeocdn.com/video/528073804_200x200.webp theo cách này bạn có thể nhận được hình ảnh video
Pus

Câu trả lời:


361

Từ các tài liệu API đơn giản của Vimeo :

Yêu cầu video

Để nhận dữ liệu về một video cụ thể, hãy sử dụng url sau:

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

video_id ID của video bạn muốn thông tin.

đầu ra Chỉ định loại đầu ra. Chúng tôi hiện cung cấp các định dạng JSON, PHP và XML.

Vì vậy, nhận URL này 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>

Phân tích điều này cho mỗi video để có được hình thu nhỏ

Đây là mã gần đúng trong PHP

<?php

$imgid = 6271487;

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

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

Ồ tuyệt. Tôi không quen thuộc xmlmặc dù. Làm thế nào tôi có thể nhận được thumbnail_smallvới php?
Johan

Để có được nó với PHP, trước tiên, hãy sử dụng tiện ích mở rộng php trong URL như vimeo.com/api/v2/video/6271487.php , bạn sẽ được cung cấp một tệp, dòng đầu tiên có vẻ là hàm băm được xê-ri hóa, sử dụng unserialize và sau đó chỉ cần đọc các mục bạn muốn
Fluffy

1
Cảm ơn, url hoạt động tốt. Ngoài ra, API ở trên không hoạt động, vì vậy hãy truy cập vimeo.com/api để đọc về nó.
fedmich

5
Bạn cũng có thể thay đổi kích thước hình ảnh và loại tệp hình ảnh. Ví dụ: bạn có thể thay đổi mặc định thumbnail_largetừ i.vimeocdn.com/video/23566238_640.webp thành i.vimeocdn.com/video/23566238_640.png hoặc i.vimeocdn.com/video/23566238_320.jpg
Michael McGinnis

28
Vì API đã chết, câu trả lời này không còn hiệu lực
KnF 2/11/2016

58

Trong javascript (sử dụng 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);
}

Để hiển thị nó:

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

Cảm ơn rất nhiều vì điều này, rất hữu ích. Tôi nghĩ rằng có một lỗi đánh máy rất nhỏ. Bạn sử dụng # trong các biến id_img, nhưng không có # trong id phần tử img. Ví dụ của bạn có giả sử sử dụng jQuery không? Tôi đã chuyển đổi $(id_img).before$(id_img).attrcho createElementvà cơ bản hơn getElementById(id_img).src, nhưng sẽ không có nó nếu nó không phải là ví dụ của bạn.
nguyên tử

3
Câu hỏi # là cú pháp JQuery không phải là một lỗi. Có, nó giả sử việc sử dụng JQuery.
Natim

À, được rồi. Cảm ơn bạn đã làm rõ. Tôi không sử dụng JQuery thường xuyên, nhưng câu trả lời vẫn thực sự hữu ích với tôi.
nguyên tử

1
Đây là jsfiddle có thể kiểm tra cho cùng một mã: jsfiddle.net/archatas/Tv7GZ
Aidas Bendora viêm

Cảm ơn @AidasBendora viêm
Natim

45

Bạn nên phân tích phản hồi API của Vimeo. Không có cách nào để nó với các cuộc gọi URL (như dailymotion hoặc youtube).

Đây là giải pháp PHP của tôi:

/**
 * 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
Cảm ơn vì điều này. Đây là giải pháp yêu thích của tôi.
Bullyen

44

Sử dụng yêu cầu jsonp của jQuery:

<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
Tôi muốn sử dụng điều này ... nhưng nếu tôi có nhiều video trên một trang thì sao? Bất kỳ cách nào để chuyển id cho cuộc gọi? Lý tưởng nhất là tôi muốn sử dụng một cái gì đó như <div id='12345678' class='vimeo_thumb'></div>- và nó sẽ được lấp đầy với hình thu nhỏ img.
Dan

4
Cuộc gọi phương thức có thể được rút ngắn như$.getJSON('http://vimeo.com/api/v2/video/' + video_id + '.json?callback=?', function (data) {...
Sanghyun Lee

22

Với Ruby, bạn có thể thực hiện các thao tác sau nếu có, nói:

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
Lưu ý: bạn có thể cần phải require 'open-uri'cho phép mở để phân tích các tệp URI cũng như các tệp.
Kris

Tôi đã phải thêm url.scan (/vimeo.com \ / (\ d +) \ /? /). Flatten.to_s.delete ("^ 0-9.") Để lấy ID vimeo #
Abram

21

Dưới đây là một ví dụ về cách thực hiện điều tương tự trong ASP.NET bằng C #. Vui lòng sử dụng một hình ảnh bắt lỗi khác nhau :)

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

LƯU Ý: Yêu cầu API của bạn sẽ như thế này khi được yêu cầu: http://vimeo.com/api/v2/video/32660708.xml


Đẹp, nhưng liên kết API chỉ là vimeo.com/api/v2/video/video_id.xml không phải là "video" ở phía trước ID video.
Martin

Rút ngắn mã này xuống và thay đổi thông số để chấp nhận id vimeo thay vì URL đầy đủ. (không thể tìm ra cách đa khối khối mã) 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

Cách JavaScript đơn giản nhất mà tôi tìm thấy để có được hình thu nhỏ mà không cần tìm kiếm id video là sử dụng:

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

Lưu ý: Nếu ai đó cần lấy hình thu nhỏ video liên quan đến id video, anh ta có thể thay thế $idbằng id video và nhận XML bằng các chi tiết video:

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

Thí dụ:

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

Nguồn


2
Đây thực sự là câu trả lời tốt nhất kể từ khi Vimeo không chấp nhận api v2. oEmbed không yêu cầu xác thực và trả về phản hồi JSON / XML có chứa các url hình thu nhỏ. developer.vimeo.com/apis/oembed
joemaller

1
Roy làm thế nào để chúng ta sử dụng cuộc gọi ajax này khi tìm kiếm một video cụ thể bằng ID?
klewis

@blackhawk Tôi không, nhưng tôi google nó ngay bây giờ và tìm thấy thứ gì đó cho bạn, chỉ cần thay thế video_id bằng của bạn $idvà bạn sẽ nhận được XML bằng các chi tiết video (bao gồm hình thu nhỏ). http://vimeo.com/api/v2/video/$id.xml. ví dụ : http://vimeo.com/api/v2/video/198340486.xml. Nguồn ở đây: coderwall.com/p/fdrdmg/get-a-thumbnail-from-a-vimeo-video
Roy Shoa

@blackhawk Tôi chỉnh sửa câu trả lời của mình, bạn có thể thấy ngay bây giờ. Cảm ơn!
Roy Shoa

11

Nếu bạn muốn sử dụng hình thu nhỏ thông qua js / jquery no api thuần túy, bạn có thể sử dụng công cụ này để chụp khung hình từ video và voila! Chèn url ngón tay cái trong đó bao giờ nguồn bạn thích.

Đây là một cây bút mã:

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

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

Đây là trang web để có được hình thu nhỏ:

http://video.depone.eu/


1
Trang web @blackhawk đã sao lưu.
alphapilgrim

Có vẻ như điều này nhận được một khung ngẫu nhiên, không phải là bìa / hình thu nhỏ chính thức mà người tạo video đã chọn. Thật tuyệt khi biết điều này tồn tại, nhưng tôi nghĩ rằng tôi sẽ sử dụng phương pháp phân tích API json bởi vì không có sự kiểm soát nào đối với ảnh bìa từ phía vimeo của mọi thứ với điều này.
squarecandy

9

Sử dụng url Vimeo ( https://player.vimeo.com/video/30572181 ), đây là ví dụ của tôi

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


Bạn là nhất.
Alexandr Kazakov

7

Có vẻ như api / v2 đã chết.
Để sử dụng API mới, bạn cần đăng ký ứng dụng của mình và base64 mã hóa client_idclient_secretlàm tiêu đề Ủy quyền.

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

Để bảo mật, bạn có thể trả lại client_idclient_secretđã được mã hóa từ máy chủ.


1
base64 không phải là một hàm băm. Không có gì "an toàn" hơn về mã hóa cơ sở64 trên máy chủ qua việc mã hóa dữ liệu ở phía máy khách. Điều đó nói rằng, nó có khả năng là phần nào nhanh hơn.
Sumurai8

7

Đây là một cách nhanh chóng để làm điều đó, và cũng là một cách để chọn một kích thước tùy chỉnh.

Tôi đi đây

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

Tải xuống tệp, mở tệp và tìm hình thu nhỏ rộng 640 pixel, nó sẽ có định dạng như vậy:

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

Bạn lấy liên kết, thay đổi 640 cho - ví dụ - 1400, và bạn kết thúc với một cái gì đó như thế này:

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

Dán nó trên thanh tìm kiếm trình duyệt của bạn và thưởng thức.

Chúc mừng


Phương pháp này không hoạt động. Trả về tệp php không tìm thấy VIDEO_ID.
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

Thật ra anh chàng hỏi câu đó đã đăng câu trả lời của chính mình.

"Vimeo dường như muốn tôi thực hiện một yêu cầu HTTP và trích xuất URL hình thu nhỏ từ XML mà họ trả về ..."

Các tài liệu API Vimeo có tại đây: http://vimeo.com/api/docs/simple-api

Nói tóm lại, ứng dụng của bạn cần tạo một yêu cầu NHẬN một URL như sau:

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

và phân tích dữ liệu được trả về để lấy URL hình thu nhỏ mà bạn yêu cầu, sau đó tải xuống tệp tại URL đó.


4

Tôi đã viết một hàm trong PHP để cho tôi biết điều này, tôi hy vọng nó hữu ích với ai đó. Đường dẫn đến hình thu nhỏ được chứa trong thẻ liên kết trên trang video. Điều này dường như để làm cho tôi lừa

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

Hy vọng nó sẽ giúp được bất cứ ai.

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

// tại hàm dưới đây vượt qua url hình thu nhỏ.

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

Phân tách câu trả lời của Karthikeyan P để nó có thể được sử dụng trong một loạt các kịch bản:

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

Sử dụng

Nhận Id Vimeo từ URL video Vimeo:

var vimeoId = parseVimeoIdFromUrl(vimeoUrl);

Nhận URL hình thu nhỏ của vimeo từ Id Vimeo:

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

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


4

CẬP NHẬT: Giải pháp này đã ngừng hoạt động kể từ tháng 12 năm 2018.

Tôi đã tìm kiếm điều tương tự và có vẻ như hầu hết các câu trả lời ở đây đã lỗi thời do Vimeo API v2 bị phản đối.

php 2 của tôi:

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

với ở trên, bạn sẽ nhận được liên kết đến hình ảnh thu nhỏ mặc định của Vimeo.

Nếu bạn muốn sử dụng hình ảnh kích thước khác nhau, bạn có thể thêm một cái gì đó như:

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

Xin vui lòng giúp tôi với bất kỳ liên kết thông báo chính thức nào được đề cập rằng v2 vimeo không được dùng nữa.
Deepak Yadav

3

Nếu bạn không cần một giải pháp tự động, bạn có thể tìm thấy URL hình thu nhỏ bằng cách nhập ID vimeo tại đây: http://video.depone.eu/


Có một câu trả lời khác giống như thế này trên trang này ở trên.
alphapilgrim

2

Tôi đã tạo CodePen để tìm nạp hình ảnh cho bạn.

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

nhập mô tả hình ảnh ở đây


1

Nếu bạn đang tìm kiếm một giải pháp thay thế và có thể quản lý tài khoản vimeo thì có một cách khác, bạn chỉ cần thêm mọi video bạn muốn hiển thị vào album và sau đó sử dụng API để yêu cầu chi tiết album - sau đó hiển thị tất cả các hình thu nhỏ và liên kết . Nó không lý tưởng nhưng có thể giúp ích.

Điểm cuối API (sân chơi)

Convo Twitter với @vimeoapi


Đây có lẽ không phải là cách hiệu quả nhất để thực hiện, đặc biệt là nếu (1) phần còn lại của mã của bạn không phụ thuộc vào API Vimeo và (2) bạn có cảm giác tốt rằng các lệnh gọi API của bạn có thể vượt xa những gì Vimeo có đặt làm giới hạn
klewis

@blackhawk bạn đã bỏ lỡ quan điểm của tôi. Nó thay thế. Nếu bạn làm điều này, bạn có tất cả các video của mình trong một lệnh gọi API. Bạn có thể lưu trữ phía máy chủ đó chẳng hạn.
sidonaldson

1

Bạn có thể muốn xem đá quý từ Matt Hook. https://github.com/matthooks/vimeo

Nó cung cấp một gói vimeo đơn giản cho api.

Tất cả những gì bạn cần là lưu trữ video_id (và nhà cung cấp nếu bạn cũng đang làm các trang web video khác)

Bạn có thể trích xuất id video vimeo như vậy

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

và nếu bạn cần bạn ống bạn có thể tìm thấy điều này hữu ích

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

Đối với những người vẫn muốn có một cách để chỉ thu nhỏ thông qua URL, giống như Youtube, một ứng dụng nhỏ được xây dựng có thể tải nó chỉ bằng ID Vimeo.

https://vumbnail.com/358629078.jpg

Chỉ cần cắm ID video của bạn và nó sẽ kéo và lưu nó trong 24 giờ để nó phục vụ nhanh.

Nếu bạn muốn tự quay vòng, bạn có thể làm như vậy ở đây .

Repo


-3

Đối với một người như tôi, người đang cố gắng tìm ra điều này gần đây,

https://i.vimeocdn.com/video/[video_id]_[dimension].webp làm việc cho tôi

(trong đó dimension= 200x150 | 640)


1
Đẹp tìm thấy. Điều này thực sự sạch sẽ.
Ben Harrison

Tuyệt vời ngoại trừ safari trên iOS không hiển thị webp
Gregory Magarshak 15/03/2017

9
Điều này có vẻ sai - tôi nhận được một hình ảnh không liên quan gì đến video thực tế. Id được sử dụng trong url ngón tay cái khác với id video - nếu bạn gọi api, bạn sẽ nhận được url này với các id khác nhau. Không có lối tắt từ việc gọi api.
Morten Holmgaard

12
Điều đó không hoạt động, video_id và image_id không giống nhau. Vì vậy, bạn sẽ nhận được một hình ảnh không thuộc về video bạn đã yêu cầu
Nicolas Azrak

Id video và Id trong hình thu nhỏ là khác nhau
Muhammad Hassaan
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.