YouTubeからビデオをダウンロードし、MP3に変換し、ファイルのディレクトリ構造を作成するプログラムに取り組んでいます。
私のコードは:
FileUtils.cd("#{$musicdir}/#{$folder}") do
YoutubeDlhelperLibs::Downloader.get($url)
if File.exists?('*.mp4')
puts 'Remove unneeded tempfile'
Dir['*.mp4'].each do |waste|
File.delete(waste)
end
else
puts 'Temporary file already deleted'
end
Dir['*.m4a'].each do |rip|
rip.to_s
rip.split
puts 'Inside the function'
puts rip
end
end
最初のものは、作成済みの音楽フォルダに移動します。その中で私はget
を実行しています。その後、ディレクトリに「xyz.mp4」と「xyz.m4a」の2つのファイルがあります。
拡張子なしでファイル名を取得したいので、両方のファイルを別々に処理できます。
私は配列を使用していますが、たった1つのマッチの配列は私にとってはクレイジーに聞こえます。
誰か別のアイデアがありますか?
次の機能を目的に使用できます。
path = "/path/to/xyz.mp4"
File.basename(path) # => "xyz.mp4"
File.extname(path) # => ".mp4"
File.basename(path, ".mp4") # => "xyz"
File.basename(path, ".*") # => "xyz"
File.dirname(path) # => "/path/to"