Created
June 7, 2016 05:13
-
-
Save k7a/75641804ddf6f2611c414f90ec9d16ec to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
COWON_MUSIC_DIR_PATH = "I:/Music/" | |
BOM = "\xEF\xBB\xBF".force_encoding(Encoding::UTF_8) | |
playlists = Dir.glob("*.m3u8") | |
puts "playlists count : #{playlists.count}" | |
playlists.each do |playlist| | |
output = ["#{BOM}#EXTM3U"] | |
count = 0 | |
error_paths = [] | |
File.read(playlist, encoding: Encoding::UTF_8).split("\n").each do |line| | |
# BOM削除 | |
line.gsub!(BOM, "") if line.start_with?(BOM) | |
if !line.start_with?("#") && !line.empty? | |
count += 1 | |
title = File.basename(line, ".*").gsub(/^.*?[ -]/, "") | |
search_path = Regexp.escape(File.absolute_path(((COWON_MUSIC_DIR_PATH + line).match(/(.+)(\.[^.]+$)/)[1]))) + ".*" | |
absolute_path = Dir.glob(search_path)[0] | |
if absolute_path.nil? | |
error_paths.push(search_path) | |
next | |
end | |
relative_path = absolute_path.gsub(/#{COWON_MUSIC_DIR_PATH}/, "").gsub("/", "\\") | |
output.push("#EXTINF:, - #{title}") | |
output.push(relative_path) | |
end | |
end | |
# プレイリスト書き出し | |
File.open(COWON_MUSIC_DIR_PATH + playlist, "w") do |file| | |
output.each do |line| | |
file.puts(line) | |
end | |
end | |
puts "-------------------------" | |
puts "#{playlist} convert completed (songs count : #{count}, success : #{count-error_paths.count}, error : #{error_paths.count})" | |
unless error_paths.empty? | |
puts "error paths : " | |
puts error_paths | |
end | |
end |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
What's this?
PC上でfoobar2000から書きだしたm3u8プレイリストをCOWON X9に転送するスクリプト
転送する際、COWON上の同ファイル名の別拡張子のファイルを検索し、パスを変換してくれる
前提条件