youtube_audio_downloader 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 79bd6d941b607912163e179120f6b84cdfc4a499
4
+ data.tar.gz: 6c57e8bbd6e17b2c655639915895d0fe13f3c053
5
+ SHA512:
6
+ metadata.gz: 845499a13b03ab8f20a9c3f2fc908bc7570a15a85ba8c8906c654bd9a24450040782c966ca65f63373b68ac4374c7532d9bdb9bb6cd2c9c843cca1e147e8bcb6
7
+ data.tar.gz: 11d99e344bf1c0fa1cffbbc0b1a02238088c42f8b795afcd07e1cf073ef7b0fca23ddbdfadcc13a4a95fb9c41cba557ffe38c85d51f7f4ad45fb840f1d0bcf5c
data/README.md ADDED
@@ -0,0 +1,22 @@
1
+ This is a gem to download audio from Youtube.
2
+
3
+ It will work on Unix only because it uses `cd` ... sloppy, I know ...
4
+
5
+ It has one external dependency, `youtube-dl`, and no bundled Ruby dependencies.
6
+ Tested with recent ruby version (>= 2.3) but probably works fine with older versions
7
+ such as 1.9.3
8
+
9
+ There are two methods it provides. Both are class methods on `YoutubeAudioDownloader`.
10
+
11
+ 1. `.download_audio(url, outdir, filename, opts={})`
12
+
13
+ 2. `.download_playlist(url, outdir, opts={})`
14
+
15
+ The `opts` accepts the following keys (can be strings or symbols)
16
+
17
+ - quality: Int (default: 3, which is pretty low, so increase if you're an audiophile)
18
+ - format: String (default: "mp3")
19
+ - prefer_ffmpeg: Boolean (default: true)
20
+
21
+ There is also a executable called `ytaudio` which offers `get(url, out_dir, filename)` and
22
+ `get_playlist(url, out_dir)` commands.
data/bin/ytaudio ADDED
@@ -0,0 +1,14 @@
1
+ #!/usr/bin/env ruby
2
+ require 'youtube_audio_downloader'
3
+ require 'thor'
4
+ class YoutubeAudioDownloader::CLI < Thor
5
+ desc "get", "download an audio"
6
+ def get(url, out_dir, filename)
7
+ YoutubeAudioDownloader.download_audio(url, out_dir, filename)
8
+ end
9
+ desc "get_playlist", "download a playlist of audios"
10
+ def get_playlist(url, out_dir)
11
+ YoutubeAudioDownloader.download_audio(url, out_dir)
12
+ end
13
+ end
14
+ YoutubeAudioDownloader::CLI.start ARGV
data/lib/version.rb ADDED
@@ -0,0 +1,3 @@
1
+ module YoutubeAudioDownloader
2
+ VERSION = '1.0.0'
3
+ end
@@ -0,0 +1,48 @@
1
+ require 'ostruct'
2
+
3
+ class YoutubeAudioDownloader
4
+
5
+ def self.download_audio(url, outdir, filename, opts={})
6
+ opts = set_default_opts(opts)
7
+ system <<-SH
8
+ cd #{outdir} && \
9
+ youtube-dl \
10
+ --extract-audio \
11
+ --output #{filename} \
12
+ --audio-format #{opts[:format]} \
13
+ --audio-quality #{opts[:quality]} \
14
+ #{"--prefer-ffmpeg" if opts[:prefer_ffmpeg]} \
15
+ #{url} \
16
+ &>/dev/null
17
+ SH
18
+ end
19
+
20
+ def self.download_playlist(url, outdir, opts={})
21
+ opts = set_default_opts(opts)
22
+ system <<-SH
23
+ cd #{outdir} && \
24
+ youtube-dl \
25
+ --extract-audio \
26
+ --yes-playlist \
27
+ --audio-format #{opts[:format]} \
28
+ --audio-quality #{opts[:quality]} \
29
+ #{"--prefer-ffmpeg" if opts[:prefer_ffmpeg]} \
30
+ #{url} \
31
+ &>/dev/null
32
+ SH
33
+ end
34
+
35
+ class << self
36
+ private
37
+ def set_default_opts(opts)
38
+ OpenStruct.new(opts).tap do |opts|
39
+ opts[:quality] ||= 3
40
+ opts[:format] ||= "mp3"
41
+ opts[:prefer_ffmpeg] ||= true
42
+ end
43
+ end
44
+ end
45
+
46
+ end
47
+
48
+ # Gem.find_files("youtube_audio_downloader/**/*.rb").each &method(:require)
metadata ADDED
@@ -0,0 +1,62 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: youtube_audio_downloader
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.0.0
5
+ platform: ruby
6
+ authors:
7
+ - maxpleaner
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2017-07-17 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: thor
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ">="
18
+ - !ruby/object:Gem::Version
19
+ version: '0'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ">="
25
+ - !ruby/object:Gem::Version
26
+ version: '0'
27
+ description: ''
28
+ email: maxpleaner@gmail.com
29
+ executables:
30
+ - ytaudio
31
+ extensions: []
32
+ extra_rdoc_files: []
33
+ files:
34
+ - README.md
35
+ - bin/ytaudio
36
+ - lib/version.rb
37
+ - lib/youtube_audio_downloader.rb
38
+ homepage: http://github.com/maxpleaner/youtube-audio-downloader
39
+ licenses:
40
+ - MIT
41
+ metadata: {}
42
+ post_install_message:
43
+ rdoc_options: []
44
+ require_paths:
45
+ - lib
46
+ required_ruby_version: !ruby/object:Gem::Requirement
47
+ requirements:
48
+ - - "~>"
49
+ - !ruby/object:Gem::Version
50
+ version: '2.3'
51
+ required_rubygems_version: !ruby/object:Gem::Requirement
52
+ requirements:
53
+ - - ">="
54
+ - !ruby/object:Gem::Version
55
+ version: 2.6.11
56
+ requirements: []
57
+ rubyforge_project:
58
+ rubygems_version: 2.6.11
59
+ signing_key:
60
+ specification_version: 4
61
+ summary: download audio from youtube
62
+ test_files: []