¿Cómo eliminar pistas duplicadas de Banshee?

Respuestas:

7

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

¿Cómo me suscribo a un error?

Sid
fuente
1
No tenía la impresión de que esta pregunta se refería específicamente a ese error. Puede terminar con pistas duplicadas en su biblioteca incluso si nunca se encuentra con ese error de importación / escaneo, y no estoy seguro de ninguna forma de eliminarlas automáticamente ahora que la opción ya no está disponible en la extensión Mirage.
Michael Martin-Smucker
3

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.

donbicca
fuente
2

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

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.

LG
fuente
Tuve un problema similar y esto me lo solucionó perfectamente. Gracias.
VariosBlueberries