Anfänger: Musikordner mit Programm sortieren

Michl

Cadet 3rd Year
Registriert
Aug. 2004
Beiträge
63
Moin, meine Aufgabe ist Folgendes:

Ich habe einen Musikordner mit unterschiedlichen Interpreten. Ich will nun für jeden Interpreten einen eigenen Ordner erstellen.
Das Programm oder vgl. sollte also den Ordner nach Interpreten sortieren und diese in separaten Ordner stecken, idealerweise wird der Ordner nach Interpret benannt.

Wie gehe ich am Besten vor?
 
Guten Morgen,

steht der Interpret im Dateinamen, z.B. bei jeder Datei "Johnny Cash - Hurt" oder nur im ID3-Tag der MP3 (davon gehe ich aus) Datei? In welcher Sprache soll das Ganze geschrieben sein?

VG,
Mad

Edit: Soll das Ganze ein eigenes Programm werden oder suchst du nur so etwas und hast nichts gefunden? Also WILLST / MUSST du es selber schreiben?
 
Es sind mp3-Dateien. Die Interpreten stehen im Dateinamen und in den Eigenschaften (ID-Tag).
Ich habe nicht nach einem existierenden Programm gesucht - ich möchte gerne wissen, ob ich das Talent/die Geduld für ein eigenen Script o.ä. habe ;-)
 
Zuletzt bearbeitet:
Ok. Und in welcher Sprache möchtest du das machen?

Generell gilt:
1. Alle Dateien mit Schleife durchlaufen und die Interpreten herausfiltern. Diese zwischenspeichern oder gleich einen Ordnern anlegen (vorher prüfen, ob es diesen nicht schon gibt)
2. Die Dateien mit den richtigen Namen in die jeweiligen Ordner Kopieren.

Das ist an sich schon alles. Alles Weitere musst du sprachenabhängig anders gestalten. Wenn der Dateiname immer gleich aufgebaut ist (wie in meinem Beispiel "Johnny Cash - Hurt") kannst du einfach den Namen parsen, alles vor dem "-" Zeichen wäre dann dein Interpret.

Mit MP3Tag klappt das ohne Probleme :-)

...vor allem weil er es selber schreiben möchte :rolleyes:

VG,
Mad
 
Also im Prinzip kann Windows7 das schon, ich meine gehe ich auf Ansicht > "Gruppieren nach mitwirkende Interpreten", dann habe ich eigentlich schon was ich will - nur müsste jetzt das Ergebnis/also die Gruppen in eigene Ordner erstellt werden.

Sprache soll Deutsch oder Englisch sein

Eure Links schaue ich mir jetzt an

Danke für Antworten, anscheinend stecke ich nicht alleine im Schnee fest :D
 
Sprache soll Deutsch oder Englisch sein

Du bist hier im PROGRAMMIER-Forum, da gehts mir wenn ich nach "Sprache" frage nicht um die Landessprache sondern...na?... die PROGRAMMIERSPRACHE ;)

Und das Windows das kann hilft dir überhaupt nichts, das musst du schon selber machen. Das "Gruppieren" ist ja nur eine Ansicht, keine echte Veränderung.

VG,
Mad
 
Ich hab's geahnt, als ich auf die Links ging (betr. Sprache) - der Hinweis auf die Ansicht sollte nur deutlich machen, was ich möchte
 
Sprache soll Deutsch oder Englisch sein
:D
Bist du sicher, dass du programmieren willst?^^
Welche Programmiersprachen kannst du denn schon?

iTunes oder wahrscheinlich auch andere Musik-Verwaltungsprogramme machen sowas automatisch, wenn man die Musik per Drag&Drop reinzieht.
 
Nochmal die Frage: Willst du es selber PROGRAMMIEREN oder suchst nur ein Tool welches die noetige Funktionalitaet bietet ?

Falls ersteres zutreffend ist: Kannst du denn ueberhaupt schon, auch nur minimal, programmieren ?
 
ich möchte gerne wissen, ob ich das Talent/die Geduld für ein eigenen Script o.ä. habe ;-)

Er will's selber machen. Ich halte es auch erstmal für schwierig mit dem Stand den ich glaube dass er hat (was für ein Satz) :D

Aber wenn er damit anfangen will, was soll man dagegen sagen :)

VG,
Mad
 
Ich würd sowas ja in Ruby schreiben, gibt hier auch etwas um MP3 Tags zu lesen/schreiben:

http://ruby-mp3info.rubyforge.org/

Und Ruby ist einfach zu lernen und einfach schön. ;)
Ergänzung ()

Da ich grade Lust auf Programmieren hatte, habe ich es mal in Ruby geschrieben. So könnte das also in etwa aussehen:

Code:
# Creates folders based on the mp3-artists present in the directory passed as
# first parameter. In addition it moves the mp3s in the directories which match
# the artist.

# Requires Mp3info to work: http://ruby-mp3info.rubyforge.org/

require 'mp3info'
require 'fileutils'

MP3_REGEXP = /.mp3\z/

def categorize_folder path
  
  folder = Dir.new(path)
  
  folder.each do |entry|
    if !File.directory?(entry) && entry.match(MP3_REGEXP)
      puts "[*] Found MP3: \"#{entry}\""
      Mp3Info.open(entry) do |mp3|
        artist = mp3.tag.artist
        unless File.directory?(artist)
          Dir.mkdir(artist)
          puts "[*] No directory for artist \"#{artist}\" present, creating a "+
            "new one."
        end
        artist_path = artist + File::SEPARATOR + entry
        FileUtils.mv(entry, artist_path)
        puts "[*] Moved MP3 to \"#{artist_path}\""
      end
    end
  end
end

categorize_folder ARGV[0]

Ich habe das jetzt nur rudimentär getestet und da Fehlen definitiv noch einige Problembehandlungen! (z.B Test auf schreib/lese-Rechte, ob Dateien mit demselben Namen bereits im Interpret-Ordner vorhanden sind, etc.) Also das soll nur als Beispiel dienen und ist so nicht fertig!

Viele Grüße,
Bender

P.s: Also wenn du nicht weißt welche Programmiersprache möchte ich dir Ruby ans Herz legen. ;) Ich denke selbst wenn du Ruby bisher nicht kennst, aber dir mal den Code durchliest und halbwegs Englisch kannst wirst du auch so sehr gut verstehen können was gemacht wird.

P.p.s: Mein "ausführlicher" Test.. *räusper*

Code:
ruby interpretizer.rb .

[*] Found MP3: "Alter Ego - Transphormer - Rocker.mp3"

[*] Moved MP3 to "Alter Ego/Alter Ego - Transphormer - Rocker.mp3"

[*] Found MP3: "Alex Kidd - Lost&Found - Who's From LA.mp3"

[*] No directory for artist "Alex Kidd" present, creating a new one.

[*] Moved MP3 to "Alex Kidd/Alex Kidd - Lost&Found - Who's From LA.mp3"
 
Zuletzt bearbeitet:
Zurück
Oben