mirror of
https://github.com/cooperhammond/irs.git
synced 2024-12-22 17:35:28 +00:00
ripper module finished
This commit is contained in:
parent
45f4d998a4
commit
253efd1e11
|
@ -13,5 +13,5 @@ crystal: 0.28.0
|
||||||
license: MIT
|
license: MIT
|
||||||
|
|
||||||
dependencies:
|
dependencies:
|
||||||
spotify:
|
ydl_binaries:
|
||||||
github: marceloboeira/spotify.cr
|
github: cooperhammond/ydl-binaries
|
37
src/interact/ripper.cr
Normal file
37
src/interact/ripper.cr
Normal file
|
@ -0,0 +1,37 @@
|
||||||
|
module Ripper
|
||||||
|
|
||||||
|
extend self
|
||||||
|
|
||||||
|
BIN_LOC = Path["~/.irs/bin".sub("~", Path.home)]
|
||||||
|
|
||||||
|
# Downloads the video from the given *video_url* using the youtube-dl binary
|
||||||
|
# Will create any directories that don't exist specified in *output_filename*
|
||||||
|
#
|
||||||
|
# ```
|
||||||
|
# Ripper.download_mp3("https://youtube.com/watch?v=0xnciFWAqa0",
|
||||||
|
# "Queen/A Night At The Opera/Bohemian Rhapsody.mp3")
|
||||||
|
# ```
|
||||||
|
def download_mp3(video_url : String, output_filename : String)
|
||||||
|
ydl_loc = BIN_LOC.join("youtube-dl")
|
||||||
|
|
||||||
|
# remove the extension that will be added on by ydl
|
||||||
|
output_filename = output_filename.split(".")[..-2].join(".")
|
||||||
|
|
||||||
|
options = {
|
||||||
|
"--output" => %("#{output_filename}.%(ext)s"), # auto-add correct ext
|
||||||
|
# "--quiet" => "",
|
||||||
|
"--ffmpeg-location" => BIN_LOC,
|
||||||
|
"--extract-audio" => "",
|
||||||
|
"--audio-format" => "mp3",
|
||||||
|
"--audio-quality" => "0",
|
||||||
|
}
|
||||||
|
|
||||||
|
command = ydl_loc.to_s + " " + video_url
|
||||||
|
options.keys.each do |option|
|
||||||
|
command += " #{option} #{options[option]}"
|
||||||
|
end
|
||||||
|
|
||||||
|
system(command)
|
||||||
|
end
|
||||||
|
|
||||||
|
end
|
Loading…
Reference in a new issue