martes, 31 de mayo de 2011

Limpiando duplicados en iTunes

Supongo que le habrá pasado a más gente, vas importando música a la biblioteca de iTunes y de vez en cuando aparecen duplicados. Borrarlos a mano es muy tedioso, así que aquí está el script que los borra físicamente de la biblioteca.

La idea básica es que cuando iTunes duplica un archivo, lo hace añadiendo 1 al nombre del fichero. Este script en Python los detecta (y si quieres, los elimina):
import os
def f(arg,dirname,names):
print "Reading directory " + dirname
for n in names:
try:
if n[-6:] == ' 1.mp3':
fich = dirname + '/' + n
print "Removing " + fich
try:
pass
# Uncomment the line above (under your responsability)
#os.remove(fich)
except Exception as (errno, strerror):
print strerror
except Exception:
pass

startpoint = os.path.expanduser('~') + '/Music/iTunes/iTunes Music'
os.path.walk(startpoint, f, None)

viernes, 13 de mayo de 2011

Grooveshark, app para iPhone y mp3 cifrados

Recientemente he adquirido una cuenta VIP en Grooveshark. Estoy encantado.

Tienen una aplicación para distintos terminales móviles y me he descargado la del iPhone (requiere iPhone con "jailbreak"). La aplicación tiene un "modo offline" muy útil para escuchar música sin tirar de la conexión de datos o Wifi.

El caso es que quería recuperar algunos de estos mp3 para escucharlos en el "netbook" (la aplicación de escritorio, basada en AIR) no tiene un modo offline.

Así que, cacharreando un poco, encontré dónde guardaba la aplicación Grooveshark para iPhone sus archivos offline. Se necesita el iPhone, con "jailbreak", por supuesto y la utilidad ifuse (en Ubuntu sólo hay que instalar el paquete correspondiente).

  1. Montamos el iPhone en modo "root" en el directorio que nos apetezca, por ejemplo:
    ifuse --root ~/iphone


  2. La aplicación Grooveshark guarda los archivos offline en este directorio:
    /private/var/mobile/Library/Grooveshark/offline


  3. Veremos un montón de ficheros .mp3 en este directorio, pero tienen un problema: no se pueden escuchar directamente, de alguna forma están manipulados para que no sean reproducibles.

  4. Nos los copiamos a nuestro ordenador. Veremos que no son reconocidos como ficheros .mp3:
    yo@ordenador:~$ file ~/iPhone/private/var/mobile/Library/Grooveshark/offline/27935561.mp3
    ~/iPhone/private/var/mobile/Library/Grooveshark/offline/27935561.mp3: data


  5. Copiamos este script (lo encontré en un foro): http://pastebin.no/32i1
    Lo guardamos y podemos ejecutar:
    python script-que-descifra.py FICHERO_MP3_CIFRADO.mp3 FICHERO_MP3_DESCIFRADO.mp3

    Y nos queda un fichero .mp3 con un nombre no muy identificativo pero con todos los tags ID3 bien puestos.