2008-10-05 21 views
5

इसलिए पिछले कुछ वर्षों में, मैंने आईट्यून्स, उर्ज और रॅपॉडी से संगीत खरीदा है और ये सभी फाइलें मेरी गैर-DRM'd एमपी 3 फ़ाइलों के साथ मिश्रित हैं जो मैंने अपनी सीडी को फटकारा है। अब इनमें से कुछ फाइलों में लाइसेंस समाप्त हो चुके हैं, और उनमें से कुछ के पास वैध लाइसेंस हैं।सॉर्टिंग संगीत

मैं अपने संगीत को उन विभिन्न डीआरएम/लाइसेंस प्रतिबंधों से सॉर्ट करना चाहता हूं जो उनके पास हैं। इससे मेरे संगीत को हटाना आसान हो जाएगा, जिसके पास मेरी सदस्यता नहीं है, और सभी जानते हैं कि मैं कौन सी फाइलों को संगीत प्लेयर पर ले जा सकता हूं।

क्या किसी को पता है कि यह .NET/पर्ल/पायथन में संभव है या नहीं, क्या कोई पुस्तकालय उपलब्ध है जो मुझे ऐसा करने में मदद करेगा?

+0

क्या आपका ज्यूकबॉक्स सॉफ्टवेयर आपके लिए ऐसा नहीं करता है? मैंने आईट्यून्स में इसके लिए अलग-अलग स्मार्ट प्लेलिस्ट स्थापित की हैं। –

उत्तर

1

मैं भी इस समस्या में आया हूं और इसे ठीक करने के लिए एक अजगर कार्य लिखा है; मेरी सलाह है कि आप अपने नुकसान को डीआरएम फाइलों के साथ काट लें और प्लेलिस्ट आदि के लिए जो भी प्रोग्राम आप उपयोग कर रहे हैं, उन्हें बाहर ले जाएं। सामान्य समस्या एम 4 पी के एमपी 3 और एम 4 ए के साथ मिश्रित है; जो भी आपके मिश्रण इस C:\drm_music पर एक नया फ़ोल्डर में सभी drm'd फ़ाइलों को स्थानांतरित होगा:

import os, shutil 

def move_drm_files(music_folder): 
    all_songs = [] 
    good_filetypes = ['mp3', 'm4a', 'ogg', 'flv', 'wma'] 
    for root, dirs, files in os.walk(music_folder): 
     for name in files: 
      full_name = os.path.join(root, name) 
      all_songs.append(full_name) 
    os.mkdir('/drm_music') 
    for song in all_songs: 
     if song[-3:] not in good_filetypes: 
      shutil.move(song, '/drm_music') 

इसलिए उदाहरण के लिए यदि आप ऊपर python -i move_drm.py साथ (move_drm.py के रूप में स्क्रिप्ट सहेजने) चलाने के लिए और move_drm_files('/users/alienfluid/music') कह सकते हैं, और सभी DRM 'डी फाइलटाइप को अपने स्वयं के संगरोध फ़ोल्डर में ले जाया जाएगा। आपको लगता है कि आप उन में से कुछ बचा सकता है यदि आप प्रकार से DRM फ़ाइलें क्रमबद्ध को यह कर सकता है:

def sort_drm(drm_folder, all_songs=[]): 
    os.mkdir('/drm_collection') 
    known_types = [] 
    for root, dirs, files in os.walk(drm_folder): 
     for name in files: 
      full_name = os.path.join(root, name) 
      all_songs.append(full_name) 
    for item in all_songs: 
     if item[-3:] not in known_types: 
      known_types.append(item[-3:]) 
    for item in known_types: 
     os.mkdir('/drm_collection/'+item) 
    for item in all_songs: 
     shutil.copy2(item, '/drm_collection/'+item[-3:]) 

यह अपने विस्तार के लिए नामित किया गया सबफ़ोल्डर्स (m4p आदि) के साथ C:\drm_collection पर एक फ़ोल्डर बना देगा, और वे हो जाएगा प्रत्येक प्रकार के सभी उदाहरणों से भरा; यदि आप पहला फ़ंक्शन चलाते हैं, तो आप एक ही फ़ाइल में दूसरे को सहेज सकते हैं और sort_drm('/drm_music')

+0

स्क्रिप्ट के लिए धन्यवाद।वे आशाजनक लग रहे हैं। एकमात्र समस्या यह है कि मुझे यकीन नहीं है कि क्या DRM'd फ़ाइलों के अलग-अलग एक्सटेंशन हैं - यानी डीएमए प्रतिबंधों को डीएमए फाइल में पेश करना संभव नहीं है, जबकि यह निश्चित रूप से गैर-डीआरएमडब्लूएमए फाइलों को फिसलने से संभव है डब्ल्यूएमपी में सीडी? – alienfluid

0

क्या सभी फाइलों में अलग-अलग एक्सटेंशन हैं? यदि ऐसा है तो यह काम हो सकता है (मैं यह सब मेरे सिर के ऊपर से लिखा है इसलिए इसकी जांच नहीं की):

import os 

music_dir = "/home/johnbloggs/music/" # note the forward slashes and the trailing slash 
output_dir = "/home/johnbloggs/sorted_music/" 

for file in os.listdir(music_dir): 
    if file.find(".mp3") != -1: 
      if os.path.exists(output_dir + "mp3"): 
       os.system("cp " + music_dir + file " " + output_dir + "mp3") 

    elif file.find(".wma") != -1: 
      if os.path.exists(output_dir + "wma"): 
       os.system("cp " + music_dir + file " " + output_dir + "wma") 

    # etc 

यह ध्यान में लिनक्स के साथ लिखा है। यदि आप वास्तव में फ़ाइल के अंदर से लाइसेंस प्रकार को पढ़ना चाहते हैं, तो यह काफी कठिन होगा

4

क्या यह अच्छा नहीं होगा अगर डीआरएम अन्य एपीआई की तरह समझ में आया हो?

अफसोस की बात है, आपको प्रत्येक डीआरएम योजना का शोध करना होगा और उस डीआरएम योजना के लिए क्लाइंट एपीआई का पता लगाना होगा।

विभिन्न इनरेन डीआरएम "समाधान" के प्रयास और सामना करने के प्रस्ताव के लिए यह article देखें।

5

यदि आपको एमपी 3 फ़ाइलों में आईडी 3 टैग देखने की आवश्यकता है तो सीपीएएन पर कुछ मॉड्यूल हैं जो आपकी मदद कर सकते हैं (उदाहरण के लिए ... MP3::FindMP3::Tag)

इसके अलावा इन लेखों में मदद मिल सकती ....

मुझे लगता है कि यह एएनसीसी टैग जिसे आप ढूंढ रहे हैं। http://www.id3.org

संबंधित मुद्दे