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 +7 -0
- data/README.md +22 -0
- data/bin/ytaudio +14 -0
- data/lib/version.rb +3 -0
- data/lib/youtube_audio_downloader.rb +48 -0
- metadata +62 -0
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,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: []
|