youtube_audio_downloader 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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: []