Respuestas:
Es un error conocido que se ha solucionado en las versiones más recientes de Banshee.
Puede usar la última versión de Banshee del Banshee PPA :
sudo add-apt-repository ppa:banshee-team/ppa
sudo apt-get update && sudo apt-get upgrade
Localice la base de datos sqlite3 (~ / .config / banshee-1 / banshee.db) y ejecute la siguiente consulta:
delete from coretracks where TrackID in
(
select trackid from
(
select TrackID as trackid, count(TrackID) as c from coretracks
group by TitleLowered,ArtistID,AlbumID,Title
)
where c > 1
);
PD Use el comando "sqlite3" para abrir la base de datos, y no solo "sqlite".
PPS Tuve que ejecutar la consulta varias veces, cada ejecución solo elimina un duplicado adicional. Esto sucede porque la selección interna solo le devuelve la ID de una pista excedente para cada combinación de Título / Artista / Álbum.
Esta respuesta usa python para acceder a la base de datos banshee, luego realiza la acción sql que donbicca enumera con un giro. En lugar de tener que ejecutar el código sql muchas veces, le he pedido a python que repita el código sql sobre la cantidad de instancias que existen en el código sql. Solo necesita ejecutar este código una vez. Debe reemplazar su ruta de inicio (reemplace "/ home / JONDOE" con su ruta de inicio).
#!/usr/bin/env python
import sqlite3
#open database to determine number of rows to loop over
db = sqlite3.connect('/home/me/.config/banshee-1/banshee.db')
cursor = db.cursor()
a = cursor.execute('SELECT TrackID from coretracks group by TitleLowered,ArtistID,AlbumID,Title')
a_trackid = a.fetchall()
db.close()
#Close database to ensure results do not impact future results. Then reopen database
db = sqlite3.connect('/home/me/.config/banshee-1/banshee.db')
cursor = db.cursor()
sql = ('DELETE from coretracks where TrackID in (SELECT TrackID from (SELECT TrackID as trackid, count(TrackID) as g from coretracks group by TitleLowered,ArtistID,AlbumID,Title) where g > 1)')
for i in a_trackid:
cursor.execute(sql)
db.commit()
db.close()
Otra alternativa para eliminar la canción duplicqtes de la base de datos sqlite banshee:
cd /home/youruser/.config/banshee-1/
Cerrar Banshee PRIMERO! Copia de seguridad de su base de datos:
cp banshee.db banshee.db.bck
En caso de que no tenga instalado sqlite:
sudo apt-get install sqlite3
DB abierto:
sqlite3 banshee.db
Escriba esta consulta:
DELETE FROM coretracks WHERE TrackID NOT IN (SELECT MIN(TrackID) FROM coretracks GROUP BY TitleLowered, ArtistID,AlbumID,Title);
salida:
.q
Ya terminaste, abre Banshee y verifica el resultado.