Module: Exportify::Downloader

Defined in:
lib/exportify/downloader.rb

Class Method Summary collapse

Class Method Details

.download(track, output_dir) ⇒ Object



7
8
9
10
11
12
13
14
15
16
17
18
19
# File 'lib/exportify/downloader.rb', line 7

def download(track, output_dir)
  artist   = sanitize(track[:artist])
  name     = sanitize(track[:name])
  query    = "#{track[:raw_name]} #{track[:all_artists]} official audio"
  template = File.join(output_dir, "#{artist} - #{name}.%(ext)s")

  system(
    'yt-dlp', "ytsearch1:#{query}",
    '--extract-audio', '--audio-format', 'mp3', '--audio-quality', '0',
    '--output', template,
    '--no-playlist', '--quiet', '--no-warnings'
  )
end

.sanitize(str) ⇒ Object



21
22
23
# File 'lib/exportify/downloader.rb', line 21

def sanitize(str)
  str.gsub(%r{[/\\:*?"<>|]}, '').strip
end