fideloper/porter

适用于Vimeo和YouTube等服务的可扩展链接解析器和元数据获取器

dev-develop 2013-07-04 15:29 UTC

This package is auto-updated.

Last update: 2024-09-06 09:12:33 UTC


README

#Porter Total Downloads

适用于YouTube和Vimeo等服务的可扩展URL解析器和元数据获取器

Sriracha!!!

它做什么?

比如说你有一段内容,可能是你网站上用户的。

I love Sriracha sauce!!! I even put it on my Cinnamon Toast Struddle Crunch Tiger Blood Leprechaun cereal!
Here's a video review of it http://www.youtube.com/watch?v=GYamE6G1EZo,
and a spiffy ad for Sriracha Sauce!!! http://vimeo.com/41852814

你喜欢Twitter如何显示嵌入和链接YouTube视频的信息,所以你心想

嘿,Twitter很酷!我要做和Twitter一模一样的事情,这样我也很酷!

运气不错!使用这个库,你可以从内容中抓取URL并获取它们的元信息。

我如何使用它?

$some_weirdos_comment = "I love Sriracha sauce!!! I even put it on my Cinnamon Toast Struddle Crunch Tiger Blood Leprechaun cereal! Here's a video review of it http://www.youtube.com/watch?v=GYamE6G1EZo, and a spiffy ad for Sriracha Sauce!!! http://vimeo.com/41852814";

$parser = new \Porter\Parser();

// I want YouTooooooob!
$parser->addService( new \Porter\Service\Youtube() );

// I want Vimeooooooooo!
$parser->addService( new \Porter\Service\Vimeo() );

$parsed_urls = $parser->parse( $parser->matchUrls($some_weirdos_comment) );

// ID's Parsed from URLs directly
foreach ( $parsed_urls as $parsed )
{
    $item_id = $parsed->getId(); //Youtube: GYamE6G1EZo, Vimeo: 41852814
}

// Now, let's get fancy with some API requests
foreach ( $parsed_urls as $parsed )
{
    $meta = $parsed->getMetadata( new \Porter\Request\Curl() ); // stdClass of data
}

对于每个服务(目前为YouTube、Vimeo),你可以获取

  1. 视频ID
  2. 通过公共API可用的元数据
    • ID
    • 图片
    • 播放时间
    • 标题
    • 等等

贡献!

还有改进的空间。例如

  1. 我已经抽象出了一种请求实现,而使用它的代码明显期望发生cURL请求(给它一个抓取数据的URL)
  2. 目前仅支持YouTube/Vimeo(Flickr?Twitpic?等等)
  3. 解析器类遍历每个服务,并在每次迭代中为每个服务创建一个新的实例。对于多个URL是必要的,但我不喜欢这种实现。

许可协议

MIT