2011-02-04 4 views
0

안녕 사용자가 링크를 공유하는 레일에 스크립트 루비를 만들고 링크에 비디오가 포함되어 있으면 비디오의 소스 코드가 추출됩니다. 다른 말로하면, 나는 기능과 같은 "페이스 북의 게시물 링크"를 구현하려고 ... 누군가가 나를 어떻게 안내 할 수있는이 달성 할 수 있습니까 ??URL에 동영상이 있는지 확인하는 방법은 무엇인가요?

답변

0

당신은 정말 비디오 알고 이제 링크

require "net/http" 

Net::HTTP.start('www.jhepple.com', 80) do |http| 
http.head('/support/SampleMovies/MPEG-1.mpg') 
end['content-type'] 

출력 "video/mpeg"

에 대한 HTTP 헤더를 분석 할 수 있습니다, 당신이 그것으로 원하는 것을 할

+0

이에만 작동합니다 도움이 될 수 있습니다 보석있어 여기 embedl.ly

같은 외부 서비스를 사용할 수 있습니다. @Saad가 당신이 언급 한 것인가, 아니면 웹 페이지에 비디오가 들어 있는지 감지하고 싶습니까 (훨씬 더 어렵습니다). – raidfive

+0

기본적으로 웹 페이지에 비디오가 포함되어 있는지 감지하고 비디오의 포함 URL을 추출하는 경우 검색하려고합니다. – Saad

+0

정밀도를 사용하려면 정밀도가 Stackoverflow 게시물보다 더 적합해야합니다. – Dex

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

플래시 비디오는 일반적으로 .flv 확장자를 가지고 있으므로 파일이있는 파일을 찾아야합니다.

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

다른 파일 형식이 필요한 경우 regexp 만 변경하십시오.

관련 문제