Comment supprimer les pistes en double de Banshee?

Réponses:

7

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

Comment souscrire à un bug?

Sid
la source
1
Je n'avais pas l'impression que cette question faisait spécifiquement référence à ce bug. Vous pouvez vous retrouver avec des pistes en double dans votre bibliothèque même si vous ne rencontrez jamais ce bogue d'importation / réanalyse, et je ne suis pas sûr de comment les supprimer automatiquement maintenant que l'option n'est plus disponible dans l'extension Mirage.
Michael Martin-Smucker,
3

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.

donbicca
la source
2

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()
branch.lizard
la source
2

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.

LG
la source
J'ai eu un problème similaire et cela l'a parfaitement réglé pour moi. Merci.
Plusieurs bleuets