Réponses:
Il s'agit d' un bug connu qui a été corrigé dans les nouvelles versions de Banshee.
Vous pouvez utiliser la dernière version de Banshee du Banshee PPA :
sudo add-apt-repository ppa:banshee-team/ppa
sudo apt-get update && sudo apt-get upgrade
Recherchez la base de données sqlite3 (~ / .config / banshee-1 / banshee.db) et exécutez la requête suivante:
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
);
PS Utilisez la commande "sqlite3" pour ouvrir la base de données, et pas seulement "sqlite".
PPS J'ai dû exécuter la requête plusieurs fois, chaque exécution ne supprime qu'un seul doublon supplémentaire. Cela se produit car la sélection interne ne vous donne que l'ID d'une piste excédentaire pour chaque combinaison Titre / Artiste / Album.
Cette réponse utilise python pour accéder à la base de données banshee, puis effectuez l'action sql que donbicca répertorie avec une torsion. Au lieu d'avoir à exécuter le code sql plusieurs fois, j'ai demandé à python de boucler le code sql sur le nombre d'instances qui existent dans le code sql. Vous n'avez besoin d'exécuter ce code qu'une seule fois. Vous devez remplacer votre chemin personnel (remplacez "/ home / JONDOE" par votre chemin personnel).
#!/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()
Autre alternative pour supprimer la chanson duplicqtes de la base de données sqlite de banshee:
cd /home/youruser/.config/banshee-1/
Fermez Banshee EN PREMIER! Sauvegardez votre base de données:
cp banshee.db banshee.db.bck
Si vous n'avez pas installé sqlite:
sudo apt-get install sqlite3
DB ouvert:
sqlite3 banshee.db
Tapez cette requête:
DELETE FROM coretracks WHERE TrackID NOT IN (SELECT MIN(TrackID) FROM coretracks GROUP BY TitleLowered, ArtistID,AlbumID,Title);
sortie:
.q
Vous avez terminé, ouvrez Banshee et vérifiez le résultat.