Как проверить, содержит ли URL видео? - PullRequest
0 голосов
/ 04 февраля 2011

привет Я создаю сценарий ruby ​​на рельсах, в котором пользователь делится ссылкой, и если ссылка содержит видео, код для вставки видео извлекается. другими словами, я пытаюсь реализовать функцию, подобную ссылке на пост в Facebook. Может кто-нибудь подсказать мне, как этого достичь ??

Ответы [ 5 ]

1 голос
/ 17 марта 2011

Единственный способ сделать это - вручную проверить каждую запись на наличие ссылки на видео, например:

  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 голосов
/ 06 февраля 2013

Вы можете использовать внешний сервис, такой как embedl.ly

Вот вам драгоценный камень, который может вам помочь https://github.com/judofyr/ruby-oembed

0 голосов
/ 17 марта 2011

Flash-видео обычно имеют расширение .flv, поэтому вам просто нужно искать файлы, которые имеют его.

html_souce.scan(%r|href\s*=\s*\"[^\"]+\.flv\"|)

Если вам нужны другие форматы файлов, просто измените регулярное выражение.

0 голосов
/ 05 февраля 2011

Вы также можете использовать утилиту, такую ​​как 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
0 голосов
/ 04 февраля 2011

Вы можете проанализировать заголовки 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"

Теперь, когда вы знаете, что это действительно видео, делайте с ним что хотите

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...