hi 我在轨道上创建脚本ruby,其中用户共享链接,如果链接包含视频,则会提取视频的嵌入代码。换句话说,我正在尝试实现像功能一样的“facebook帖子链接”。有人可以引导我如何实现这一点?如何检查一个url是否包含视频?
0
A
回答
0
您可以分析HTTP头该链接
require "net/http"
Net::HTTP.start('www.jhepple.com', 80) do |http|
http.head('/support/SampleMovies/MPEG-1.mpg')
end['content-type']
输出"video/mpeg"
现在,你知道这是一个真正的视频,做你想要做什么用
0
你也可以使用工具如file
并分叉一个系统进程,以便它执行像file -b downloaded_file.mpg
这样的命令。
所以您的代码会是这个样子:
IO.popen("file -b /path/to/video.mpg") { |stdout| @stdout = stdout.gets }
if not @stdout.grep(/MPEG/).empty?
puts "MPEG Detected"
end
1
我能想到的唯一办法做到这一点是手动检查每个帖子的链接,视频,例如:
YOUTUBE_EMBED = '<iframe title="YouTube video player" width="640" height="390" src="http://www.youtube.com/embed/VIDEO_ID" frameborder="0" allowfullscreen></iframe>'
if comment =~ /.*http:\/\/(\w+\.)?youtube.com\/watch\?v=(\w+).*/
return YOUTUBE_EMBED.gsub(/VIDEO_ID/, $2)
end
然后为每个视频网站重复此过程。我正在与类似的概念搏斗,所以如果你找到一个更好的方法来做到这一点,让我知道!
0
Flash视频通常具有扩展名.flv,因此您只需查找具有该扩展名的文件即可。
html_souce.scan(%r|href\s*=\s*\"[^\"]+\.flv\"|)
如果您需要其他文件格式,只需更改正则表达式。
0
您可以像使用embedl.ly
这里的外部服务你是一个宝石,可以帮助您https://github.com/judofyr/ruby-oembed
相关问题
- 1. 如何检查URL是否只包含一个路由参数?
- 2. 检查URL是否为YouTube视频
- 3. 如何检查url是否包含多个字符串。 Javascript/jquery
- 4. 如何检查一个txt文件是否包含一个词
- 5. 如何检查URL是否包含/预览或子域是CI?
- 6. 如何检测HTML页面是否包含视频?
- 7. 如何检查一个TextView是否包含某个字符串
- 8. 如何检查DataTable是否包含DataRow?
- 9. 如何检查NSString是否包含'%'?
- 10. 任何preg_match来检查一个url是否是youtube/vimeo/dailymotion视频链接?
- 11. 如何检查一个字段是否包含圆括号?
- 12. 如何检查一个字符是否包含特定字母
- 13. 如何检查数组是否至少包含一个对象?
- 14. 如何检查一个字符串是否包含zalgo文本?
- 15. 如何检查是否一个文本框包含在VB
- 16. 如何检查一个字符串是否包含char?
- 17. 如何检查是否一个数组包含浮法:: NAN
- 18. 如何检查一个字符串是否包含在ArrayList中?
- 19. 如何检查Ruby数组是否包含多个值之一?
- 20. Javascript - 如何检查一个元素是否包含图像?
- 21. 如何检查数组参数是否包含一个值
- 22. Java,如何检查一个字符串是否包含数字?
- 23. 如何检查一个网站是否包含闪存
- 24. 检查是否包含jQuery
- 25. 如何检查一个arrayList以查看它是否包含另一个arrayList?
- 26. 检查URL是否包含一些文本(javascript)
- 27. Smarty检查URL是否包含一些值
- 28. 如何检查div标签是否包含部分视图?
- 29. 检查文本是否包含多个@
- 30. 检查url是否包含某个字,然后显示
如果是直接链接到视频文件这只会工作。 @Saad就是你所说的,或者你想要检测包含视频的网页(这更难)。 – raidfive 2011-02-04 16:22:43