Il Forum di Orebla.it

Benvenuto nella community di Orebla.it
Oggi è dom 16 feb, 2020 7:57 pm

Tutti gli orari sono UTC + 1 ora




Apri un nuovo argomento Rispondi all’argomento  [ 2 messaggi ] 
Autore Messaggio
 Oggetto del messaggio: [C++] Rinominare mp3 in base ai tag
Messaggio da leggereInviato: dom 28 ott, 2007 10:50 pm 
Non connesso
super-guru
super-guru
Avatar utente

Iscritto il: mar 28 dic, 2004 6:54 pm
Messaggi: 300
Località: Pisa
Questa richiesta mi era stata fatta su Hacker Journal...sperando che possa tornare utile a qualcuno posto il codice qui. Quello che segue è un codice C++ per sistemi Unix che prende come parametro una directory in cui sono collocati dei file mp3, legge i tag di ogni file e rinomina il file in questione nel formato 'Artista - Titolo.mp3'. È molto comodo per tutti quelli che si ritrovano a scaricare musica da un lettore mp3 al proprio computer e si ritrovano tutti i nomi di file sballati mentre invece i tag sono a posto. Ancora una volta ho utilizzato le librerie id3lib nel codice.

Codice:
#include <iostream>
#include <string>
#include <cstdio>
#include <cstdlib>
#include <id3/tag.h>
#include <dirent.h>
using namespace std;

void get_tag (ID3_FrameID f, ID3_Tag &myTag, char *field, int size)  {
        ID3_Frame *myFrame=NULL;

        if (myFrame = myTag.Find(f))
                myFrame->Field(ID3FN_TEXT).Get(field,size);
}

main(int argc, char **argv)  {
        if (argc==1)  {
                cout << "Usage: " << argv[0] << "<dir>" << endl;
                exit(1);
        }

        DIR *dir;
        struct dirent *info;

        if (!(dir=opendir(argv[1])))  {
                cout << "Invalid directory " << argv[1] << endl;
                exit(2);
        }

        while (info=readdir(dir))  {
                if (strstr(info->d_name,".mp3"))  {
                        char band[1024],title[1024];

                        ID3_Tag myTag(info->d_name);
                        get_tag(ID3FID_BAND,myTag,band,sizeof(band));
                        get_tag(ID3FID_TITLE,myTag,title,sizeof(title));

                        cout << band << endl;

                        string name(band);
                        name.append(" - ");
                        name.append(title);
                        name.append(".mp3");
                        rename (info->d_name,name.c_str());
                }
        }
}

_________________
Immagine
Immagine


Top
 Profilo  
 
Messaggio da leggereInviato: lun 29 ott, 2007 3:55 pm 
Non connesso
Amministratore
Amministratore
Avatar utente

Iscritto il: lun 27 dic, 2004 10:32 am
Messaggi: 2614
Località: Ferrara
Si hai ragione, tutte le volte i file mp3 non hanno un tag o il nome giusto... cavolo...

_________________
I'm so happy because today
I've found my friends ...
They're in my head

[NIRVANA - LITHIUM]
Il Blog del disperato: http://blog.orebla.it


Top
 Profilo  
 
Visualizza ultimi messaggi:  Ordina per  
Apri un nuovo argomento Rispondi all’argomento  [ 2 messaggi ] 

Tutti gli orari sono UTC + 1 ora


Chi c’è in linea

Visitano il forum: Nessuno e 1 ospite


Non puoi aprire nuovi argomenti
Non puoi rispondere negli argomenti
Non puoi modificare i tuoi messaggi
Non puoi cancellare i tuoi messaggi
Non puoi inviare allegati

Cerca per:
Vai a:  
cron
Powered by phpBB® Forum Software © phpBB Group
Traduzione Italiana phpBBItalia.net basata su phpBB.it 2010
phpBB SEO