fideloper / porter
适用于Vimeo和YouTube等服务的可扩展链接解析器和元数据获取器
dev-develop
2013-07-04 15:29 UTC
Requires
- shuber/curl: dev-master
Requires (Dev)
- mockery/mockery: >=0.7.2
This package is auto-updated.
Last update: 2024-09-06 09:12:33 UTC
README
#Porter 
适用于YouTube和Vimeo等服务的可扩展URL解析器和元数据获取器
它做什么?
比如说你有一段内容,可能是你网站上用户的。
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),你可以获取
- 视频ID
- 通过公共API可用的元数据
- ID
- 图片
- 播放时间
- 标题
- 等等
贡献!
还有改进的空间。例如
- 我已经抽象出了一种请求实现,而使用它的代码明显期望发生cURL请求(给它一个抓取数据的URL)
- 目前仅支持YouTube/Vimeo(Flickr?Twitpic?等等)
- 解析器类遍历每个服务,并在每次迭代中为每个服务创建一个新的实例。对于多个URL是必要的,但我不喜欢这种实现。
许可协议
MIT