Domanda

Ho due directory che contengono ~ 20 GB di file musicali (principalmente mp3, alcuni ogg) e vorrei rilevare tutti i brani duplicati. Esistono due fattori complicanti:

  1. Una canzone può avere nomi di file diversi nelle due directory.
  2. Due file contenenti lo stesso brano possono avere tag ID3 diversi e quindi avere checksum diversi.

Qual è un buon approccio per risolverlo?

È stato utile?

Soluzione

Il modo in cui l'ho fatto in passato è usare i genpuidi che provengono da Music IP. Il software di origine chiusa crea un'impronta digitale audio di un file indipendentemente dal formato, id3, checksum ecc.

Ulteriori informazioni sono disponibili qui .

Ciò dovrebbe garantire il maggior numero di corrispondenze positive duplicate e ridurre al minimo i falsi positivi. Può anche etichettare correttamente tag id3 errati.

Altri suggerimenti

Ecco cosa avrei fatto (o fatto prima) ...

  1. Carica tutte le canzoni su itunes (sopporta con me) (nota, se puoi usare iTunes qui, allora fermati ... Presumo che il tuo elenco di duplicati sia lungo e ingestibile)
  2. Elimina tutti i brani, inviandoli nel cestino, in questo modo ti sbarazzerai della struttura delle directory
  3. Ovviamente, non " svuota cestino " ;. Salva i brani in una cartella sul desktop
  4. Utilizza software come mediamonkey , dupe rimosso r o anche itunes stesso per identificare i duplicati. L'eliminatore di duplicati è buono in quanto controlla da una quantità variabile di fattori, artista, lunghezza, dimensione del file e quant'altro e indovina cos'è un duplicato e cosa non lo è)
  5. Ricarica su Itunes, questa volta controlla `` Disponi automaticamente le canzoni '', che lascerà cadere il tuo nuovo elenco senza duplicati in un arrangiamento per artista per album

... voilà! (o se leggi digg: ??" ... profit! ")

/ mp

Se si dispone di una libreria in grado di analizzare i file, è possibile eseguire l'hash sui dati audio. Questo non ti aiuterà se la canzone ha uno strappo diverso o è stata ricompressa / transcodificata / ecc.

I metatag artista e canzone ID3 / OGG-equiv sono accurati? Se lo sono, potresti usarli.

Modifica: se non lo sono, forse potrebbero essere fatti per essere ... Se hai a che fare solo con interi album, ci sono diversi strumenti che otterranno tutti i dati dei tag in base al numero di tracce e al loro lunghezze.

Se hai a che fare con mix di album e singoli file, diventa più complicato.

Sono sicuro che ci sono soluzioni più eleganti là fuori - ma se i dati audio sono equivalenti, rimuovere i tag ID3 e l'hash dovrebbe fare il trucco. Dopo l'hashing, puoi rimettere i tag ID3 se vuoi.

Forse la API di Last.fm sarebbe utile. Include una chiamata track.getInfo che restituisce XML che include la lunghezza della traccia, il nome dell'artista, il numero della traccia, ecc. È possibile confrontare le tracce e vedere se hanno più di N campi uguali e, in tal caso, supporre che siano la stessa traccia.

Non ho idea se stiano andando bene se invii richieste API per 40 GB di musica.

Che ne dici di qualcosa del genere: trova una libreria per ottenere la lunghezza dell'mp3 e un puntatore ai dati audio (sembra che ci siano un paio di librerie là fuori che possono farlo), fai un filtro di primo passaggio basato sulla canzone lunghezze e per i brani con lunghezza corrispondente fare il checksum dei loro dati audio. Simile a questo script per la ricerca di file / immagini duplicati .

Alcuni adattamenti di ffTES hanno funzionato perfettamente per me per un compito molto simile.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top