Programma om MP3's te renamen op basis van M3U/SFV

Pagina: 1
Acties:
  • 87 views sinds 30-01-2008

  • Jasper
  • Registratie: Juni 1999
  • Laatst online: 12:27
Vorige week heb ik iTunes voor windows geinstalleerd. Zoals veel mensen waarschijnlijk al hebben gelezen wil hij nog wel eens je originele mp3's moven en renamen. Dat is bij mij dus ook gebeurt (even buiten beschouwing laten of dat nu wel of niet mijn fout is ;)).

Nu zit ik dus met 8gb aan mp3 die uit de originele mappen verplaatst zijn naar mappen van artiesten met daarin album namen. Na 45 mins goed moven heb ik alle mp3's weer in de originele mappen terug. Het grote nadeel is alleen dat alle filenames door iTunes aangepast zijn. In al mijn mp3 mappen zitten M3U en SFV bestanden welke dus niet meer werken omdat beide op basis van bestandsnamen hun acties uitvoeren (lijst naar winamp / checken op bestandsgrootte).

Uiteraard wil ik dat al mijn mp3 bestanden weer de originele bestandsnamen krijgen maar ik ben niet van plan om 8gb aan mp3's te renamen op basis van de info in de M3U/SFV.
Nu ben ik op zoek naar een programma'tje wat op basis van SFV (lijkt mij het meest logische) of M3U bestanden de mp3's in die map kan renamen. Helaas heeft mijn eigen zoektocht nog niets opgelevert, aangezien de werkwijze meestal andersom is (je hebt mp3's welke je gaat renamen, vervolgens bouw je er een m3u en sfv file bij). Bestaat er uberhaupt een programma wat doet wat ik wil?

  • silentsnow
  • Registratie: Maart 2001
  • Laatst online: 15-04-2013

silentsnow

« '-_-' »

http://www.google.com/sea...F-8&oe=UTF-8&q=m3u+rename (eerste hit)

Zoiets? En Tag&Rename misschien?

en misschien deze: http://mp3fnf.tripod.com/

[ Voor 22% gewijzigd door silentsnow op 25-10-2003 13:15 ]

The trade of the tools
[ me | specs ] Klipsch Promedia Ultra 5.1 + Sennheiser HD-590


  • jpvk007
  • Registratie: September 2001
  • Laatst online: 27-08 23:22
ik gebruik zelf eags on (http://usuarios.lycos.es/eagson/). deze maakt verbinding met de freedb server en vult zo de id3 tags in. het werkt echt perfect...

  • Jasper
  • Registratie: Juni 1999
  • Laatst online: 12:27
Tag&Rename heb ik geprobeerd. Deze werkt ook precies andersom (je hebt mp3 en je wil m3u en sfv files).
mp3fnf fixed helaas ook niet de filenames op basis van de m3u/sfv.


jpvk007: ik hoef geen id3 tags te hebben (deze staan er al 'in'), maar thanks.

:'(

  • G33rt
  • Registratie: Februari 2002
  • Laatst online: 22-06-2022
jpvk007 schreef op 25 oktober 2003 @ 13:29:
ik gebruik zelf eags on (http://usuarios.lycos.es/eagson/). deze maakt verbinding met de freedb server en vult zo de id3 tags in. het werkt echt perfect...
Alleen daar heeft Jasper weinig aan, hij wil de filenames anders, de ID3 tags zijn niet veranderd door iTunes :)

  • QSYS
  • Registratie: Februari 2001
  • Laatst online: 23-04 01:13
met tag and rename kun je toch ook de file renamen naar wat jij wilt.

  • swampy
  • Registratie: Maart 2003
  • Laatst online: 25-03 09:06

swampy

Coconut + Swallow = ?

Zelf gebruik ik Media Center 9 http://www.musicex.com/mediacenter/

Gewoon importeren en dan onder Tools de mp3's hernamen gebaseerd op de ID3-tags :-)

En ja, het is shareware en ik HEB een licentie gekocht...

[ Voor 29% gewijzigd door swampy op 25-10-2003 15:02 ]

There is no place like ::1


  • flat
  • Registratie: Mei 2000
  • Niet online
ik zat vanochtend dus met hetzelfde probleem, en ik heb 'n scriptje geschreven dat per directory de sfv file inleest, vervolgens voor alle files die eindigen op .mp3 de checksum berekent, de passende filename opzoekt in de .sfv, en tot slot de file renamed :)
helaas heb ik het scriptje niet bewaard, maar als je zoiets als react kan maken moet dit ook wel lukken ;)

"Happiness is a way of travel, not a destination."
--Roy Goodman


  • m-m
  • Registratie: Augustus 2001
  • Niet online

m-m

Heb je UltraTagger geprobeerd? www.ultratagger.com 30 dagen trial versie, maar in die 30 dagen kan je vast wel al je mp3s renamen :P

  • Jasper
  • Registratie: Juni 1999
  • Laatst online: 12:27
m-m schreef op 25 October 2003 @ 15:06:
Heb je UltraTagger geprobeerd? www.ultratagger.com 30 dagen trial versie, maar in die 30 dagen kan je vast wel al je mp3s renamen :P
Kan ik helaas ook niets mee aangezien hij op basis van ID3 tags renamend..
Flat© schreef op 25 oktober 2003 @ 15:03:
ik zat vanochtend dus met hetzelfde probleem, en ik heb 'n scriptje geschreven dat per directory de sfv file inleest, vervolgens voor alle files die eindigen op .mp3 de checksum berekent, de passende filename opzoekt in de .sfv, en tot slot de file renamed :)
helaas heb ik het scriptje niet bewaard, maar als je zoiets als react kan maken moet dit ook wel lukken ;)
Kijk, daar heb ik ook aan zitten denken en ik ben bang dat dat de enige oplossing is. Dit vond ik net:
A simple and quite fast (10ms/Mb) way to generate checksums used with the popular SFV (Simple File Verification) format. strtoupper() isn't really needed, but the output looks better this way ;)

PHP:
1
2
3
4
function generate_sfv_checksum($filename) {
 $sfv_checksum = strtoupper(dechex(crc32(file_get_contents($filename))));
 return $sfv_checksum;
}

  • Jasper
  • Registratie: Juni 1999
  • Laatst online: 12:27
Een collega van mij heeft net een php-script geschreven wat recursief al mijn mp3 mappen doorloopt en van elke mp3 de checksum berekend en vergelijkt met die in de sfv. Komt dit overeen dan hernoemt hij de mp3 file _O_

Als er mensen geinteresseerd in zijn kan ik hem hier wel posten, als mijn test vanavond slaagt.

  • Jasper
  • Registratie: Juni 1999
  • Laatst online: 12:27
Woei :) Het script werkt.
Me very happy man :P

Hieronder voor mensen die er ook problemen mee hebben, het php-script.

PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
    <form>
        Path: <input type=text name='path' value="<?= $_REQUEST['path'] ?>"><br>
        Recursive: <input type=checkbox name='recursive' value=1 <?= $_REQUEST['recursive']?'checked':'' ?>><br>
        Dry: <input type=checkbox name='do_dry' value=1 <?= $_REQUEST['do_dry']?'checked':'' ?>><br>
        <input type=submit>
    </form>

<?

    set_time_limit(32498);

    function generate_sfv_checksum($filename)
    {
        if ( $fp = fopen($filename, 'r' ) )
        {
            //while( !feof($fp) )
            //  $filedata .= fread($fp, 1024);
            $filedata = fread($fp, filesize($filename));
            fclose($fp);
            return dechex(crc32($filedata));
        }
        return false;
    }

    function process_dir( $dir, $recursive = false, $do_dry = false )
    {
        $mp3s = array();

        if ( !is_dir($dir) )
            return "BLAH no good dir you give!<br>"; flush();

        if ($dirdata = @opendir($dir))
        {
            while (($file = readdir($dirdata)) !== false)
            {
                if ( preg_match('~^.*.mp3$~', $file) )
                {
                    $mp3s[str_pad(generate_sfv_checksum($dir.'/'.$file), 8, "0", STR_PAD_LEFT)][] = $file;
                    echo '|'; flush();
                }
                elseif ( preg_match('~^.*.sfv$~', $file) )
                    $sfv = $file;
                elseif ( $file != '.' && $file != '..' && is_dir( $dir .'/'. $file ) && $recursive )
                {
                    echo '<hr>Found dir "'. $file .'"<br>'; flush();
                    echo process_dir( $dir .'/'. $file, true, $do_dry); flush();
                }
            }
            closedir($dirdata);
        }
        else
            return "Could not open '". $dir ."'!<br>"; flush();

        echo "<hr>Doing da shit on ". $dir ."<br>"; flush();

        if ( !$sfv )
            return "No sfv found!"; flush();

        if ( $fp = fopen($dir .'/'. $sfv, 'r' ) )
        {
            while( !feof($fp) )
                $sfvdata .= fread($fp, 1024);
            fclose($fp);
        }
        else
            return "Could not open sfv!<br>";

        if ( preg_match_all('~^(.*)\s(.*)$~imU', $sfvdata, $matches, PREG_SET_ORDER) )
        {
            foreach( $matches as $match )
            {
                if ( $match[1]{0} == ';' )
                    continue;

                $match[2] = trim($match[2]);
                if ( $mp3s[$match[2]] )
                {
                    foreach( $mp3s[$match[2]] as $nr => $filename )
                    {
                        echo 'Renaming "'. $filename .'" to "'. $match[1] .'"<br>';
                        $done_mp3s++;
                        if ( !$do_dry )
                        {
                            if ( $filename == $match[1] )
                                echo 'Already good name.<br>';
                            if ( !rename($dir .'/'. $filename, $dir .'/'. ($nr > 0?'['.$nr.']-':'') . $match[1]) )
                                echo 'Moooo0: could not rename "'. $filename .'"<br>'; flush();
                        }
                    }
                }
                else
                    echo 'Could not find "'. $match[1] .'" ('. $match[2] .')<br>'; flush();
            }
        }
        else
            return "Could not parse sfv<br>". $sfvdata; flush();

        $GLOBALS['total_mp3s'] += $done_mp3s;
        $GLOBALS['total_dirs']++;

        return 'All good, done '. $done_mp3s .' mp3s.<br>'; flush();
    }

    if ( $_GET['path'] )
    {
        echo process_dir($_REQUEST['path'], $_REQUEST['recursive'], $_REQUEST['do_dry']);
        echo '<hr>I found '. $GLOBALS['total_mp3s'] .' mp3s in '. $GLOBALS['total_dirs'] .' dirs!<br>';
    }
?>

Verwijderd

Ik heb precies hetzelfde probleem maar dan met een totaal van 20 GB :(

Kan iemand me uitleggen hoe ik dat php script kan draaien?
Heb Windows xp Home Edition en qua php ben ik niet op de hoogte.

  • Choxo
  • Registratie: September 2003
  • Laatst online: 10-11-2023

Choxo

n\o/ne

@FTD80 , je moet een server runnen op je computer & php instaleren, en dna in de WWW map plaatsen ( kijk maar is op google op "installeren Apacha Mysql server , informatie zat!)

Voor als ik niet duidelijk ben geweest :
1) Apache installeren ( of andere server)
2) Php installeren

Als je echt helemaal niets wil doen, kan je easyphp downloaden, dit installeert automatisch php,apche &perl. JE kunt dan wel weinig instellingen instellen...

×××


  • G33rt
  • Registratie: Februari 2002
  • Laatst online: 22-06-2022
FTD80, er staat een prima installatie- en configuratie sectie in de php manual. Verder kun je de howto [rml][ Howto] Apache, PHP, MySQL, .htaccess & Virtual Hosts[/rml] lezen, dan kom je er ook wel uit. Omdat dit verder een oud topic is, doe ik dit op slot :)

Zie dit stuk PHP docs over het installeren, dan moet je er echt wel uitkomen :)
Pagina: 1

Dit topic is gesloten.