बंशी से डुप्लीकेट ट्रैक कैसे हटाएं?


19

बंशी से डुप्लीकेट ट्रैक कैसे हटाएं?


कृपया यह धागा भी देखें: askubuntu.com/questions/4323/how-can-i-find-duplicate-songs
belacqua

sooo अगर मैं कहता हूँ कि 1,00 डुप्लिकेट ट्रैक हैं तो मुझे इस कमांड को 1,000 बार चलाने की आवश्यकता है?

जवाबों:


7

यह एक ज्ञात बग है जिसे बंशी के नए संस्करणों में तय किया गया है।

आप बंशी PPA से बंशी के नवीनतम संस्करण का उपयोग कर सकते हैं :

sudo add-apt-repository ppa:banshee-team/ppa
sudo apt-get update && sudo apt-get upgrade

मैं बग की सदस्यता कैसे ले सकता हूं?


1
मैं इस धारणा के अधीन नहीं था कि यह प्रश्न विशेष रूप से उस बग का जिक्र कर रहा था। आप अपनी लाइब्रेरी में डुप्लिकेट ट्रैक्स के साथ समाप्त हो सकते हैं, भले ही आप उस आयात / पुनर्चक्रण बग में कभी भी न चलें, और मैं उन्हें स्वचालित रूप से हटाने के लिए किसी भी तरह से सुनिश्चित नहीं हूं कि विकल्प मिराज एक्सटेंशन में अब उपलब्ध नहीं है।
माइकल मार्टिन-स्मूकर

3

Sqlite3 डेटाबेस का पता लगाएँ (~ / .config / banshee-1 / banshee.db) और निम्नलिखित क्वेरी चलाएँ:

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 डेटाबेस को खोलने के लिए "sqlite3" कमांड का उपयोग करें, न कि केवल "sqlite"।

PPS मुझे कई बार क्वेरी चलाना था, प्रत्येक रन केवल एक अतिरिक्त डुप्लिकेट हटाता है। ऐसा इसलिए होता है क्योंकि आंतरिक चयन केवल आपको प्रत्येक शीर्षक / कलाकार / एल्बम संयोजन के लिए एक अधिशेष ट्रैक की आईडी देता है।


2

यह उत्तर बंशी डेटाबेस तक पहुँचने के लिए अजगर का उपयोग करता है, फिर एक मोड़ के साथ डोनलिक्का सूचियों को प्रदर्शित करता है। कई बार sql कोड चलाने के बजाय, मैंने python को उन sql कोड को लूप करने को कहा है जो sql कोड में मौजूद हैं। आपको केवल एक बार इस कोड को चलाने की आवश्यकता है। आपको अपने घरेलू पथ (अपने घर के रास्ते के साथ "/ घर / जंडो" को बदलने की आवश्यकता है)।

#!/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()

2

बंशी साइक्लाइट डेटाबेस से डुप्लिकेट गाने को हटाने का अन्य विकल्प:

cd /home/youruser/.config/banshee-1/

बंद करें बंशी FIRST! अपने DB का बैकअप लें:

cp banshee.db banshee.db.bck

यदि आपके पास साइक्लाइट स्थापित नहीं है तो:

sudo apt-get install sqlite3

DB खोलें:

sqlite3 banshee.db

यह क्वेरी टाइप करें:

DELETE FROM coretracks WHERE TrackID NOT IN (SELECT MIN(TrackID) FROM coretracks GROUP BY TitleLowered, ArtistID,AlbumID,Title);

बाहर जाएं:

.q

आप कर रहे हैं, Banshee खोलें और परिणाम की जांच करें।


मुझे इसी तरह की समस्या थी और इसने मेरे लिए इसे पूरी तरह से ठीक कर दिया। धन्यवाद।
ब्लूबेरी
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.