2009-12-23 8 views
10

Je souhaite télécharger une vidéo de YouTube, puis extraire son audio. Quelqu'un peut-il me signaler un code Ruby pour télécharger une vidéo? Merci!Télécharger YouTube avec Ruby (code source)

+0

Aimez le titre ... tout ce que je peux penser est "je télécharge ur youtubz!" LOL – mezoid

+0

Youtube toujours changer leur source de page ... – Nakilon

Répondre

4

Vous ne savez pas comment extraire l'audio, mais Ruby possède de nombreuses bibliothèques de scraping/mining. Vous pouvez les utiliser pour automatiser un navigateur et récupérer les données dont vous avez besoin (par exemple, le code d'intégration de la vidéo).

Je recommande d'utiliser une combinaison de mécaniser et hpricot mais voici une liste assez complète:

hpricot Mechanize Scrapi Scrubyt Nokogiri

Vous pouvez également essayer de Rio pour le téléchargement de fichiers/vidéos:

Rio: http://rio.rubyforge.org/

Espérons que cela aide.

+0

Pourquoi utiliser Hpricot et Mechanize, alors que Mechanize utilise déjà Nokogiri en interne? –

2

Voici un code ruby ​​pour télécharger une vidéo sur youtube. Malheureusement, la bibliothèque est écrite en python.

system("youtube-dl", "-o", filename, youtube_url) 

Vous pouvez extraire l'audio avec le

system("mplayer", "-dumpaudio", "-dumpfile", audo_filename, filename) 
4

Il existe un projet de téléchargement de vidéo plus récent here on github qui vous permet de saisir des vidéos flash à partir de différents sites.

10
gem install curltube 

puis exécuter curltube <youtube-url>

https://github.com/maxogden/curltube

+1

La gemme ne fonctionne pas pour moi. Cependant, la gemme 'viddl-rb' fonctionne très bien. – DNNX

+0

maintenant, 'viddle-rb' recommande' youtube-dl'. essayé 'youtube-dl' et a bien fonctionné. – ruseel

4

Vérifier https://github.com/davidgaya/youtube_rb

Son minuscule et uncomplete.

Il peut obtenir votre URI expirée et personnalisée pour un flux vidéo.

@video = YoutubeVideo.new "http://www.youtube.com/watch?v=zzG4K2m_j5U" 
@video.stream_uri 

Une fois que vous avez le stream_uri, vous pouvez le télécharger et le traiter en utilisant ffmpeg ou GStreamer.

+0

Merci pour votre partage, solution très simple :) –

Questions connexes