def run(self): try: lib = library.parse(self.xml) except Exception as e: self.signals.error.emit(str(e)) else: self.signals.finished.emit() self.signals.result.emit(lib)
def main(user_id, xml_path, playlist_name, year): scope = 'user-top-read' token = spotipy_token(scope, user_id) sp = spotipy.Spotify(auth=token) lib = library.parse(xml_path, ignoreRemoteSongs=False) playlist = lib.getPlaylist(playlist_name) for item in playlist.items: time.sleep(.1) spotify_search(item, year, sp) print("done")
def test_playlist_items(): lib = library.parse(os.path.join(SAMPLE_DATA_DIRECTORY,"10.xml")) assert lib.playlists[0].items
def test_majorVersion(): lib = library.parse(os.path.join(SAMPLE_DATA_DIRECTORY,"empty.xml")) assert "2" == lib.majorVersion
print('Manifest contains', num_items, 'items') load_manifest = json.loads(manifest_s) else: print('Manifest could not be found. Creating manifest txt file...') with open('manifest.txt', 'w') as manifest_txt: manifest_txt.write('[]') use_manifest = False # manifest_txt.close() elif input1 == 'n': print('Manifest not being used') use_manifest = False else: quit() lib = library.parse(library_xml) errors = [] # Exclude audio files that are too long (probably not songs), not formatted correctly or were already updated for song in contents: print('=' * 80) print('Analyzing track', song['id'], ': ', song['artist'], song['title']) if use_manifest == True: check = manifest_check(song, load_manifest) if check == True: continue if song['duration'] > 1000: print('Song too long.') song['error_type'] = 'audio too long.' errors.append(song) continue
def test_applicationVersion(): lib = library.parse(os.path.join(SAMPLE_DATA_DIRECTORY,"empty.xml")) assert "11.0.2" == lib.applicationVersion
def test_totalTime(): lib = library.parse(os.path.join(SAMPLE_DATA_DIRECTORY,"10.xml")) item = lib.getItemsById("16116") assert item.getItunesAttribute('Total Time') == '178474'
def test_title(): lib = library.parse(os.path.join(SAMPLE_DATA_DIRECTORY,"10.xml")) assert "The Next Day" == lib.items[0].title
def test_playlist_items(): lib = library.parse(os.path.join(SAMPLE_DATA_DIRECTORY, "10.xml")) assert lib.playlists[0].items
def test_library_items(): lib = library.parse(os.path.join(SAMPLE_DATA_DIRECTORY, "10.xml")) assert lib.items
def test_majorVersion(): lib = library.parse(os.path.join(SAMPLE_DATA_DIRECTORY, "empty.xml")) assert "2" == lib.majorVersion
def test_unicode_title(): lib = library.parse(os.path.join(SAMPLE_DATA_DIRECTORY, "unicode.xml")) item = lib.getItemsById("164") assert item.title assert item.artist == 'Blackfield'
def test_applicationVersion(): lib = library.parse(os.path.join(SAMPLE_DATA_DIRECTORY, "empty.xml")) assert "11.0.2" == lib.applicationVersion
def test_playlist(): lib = library.parse(os.path.join(SAMPLE_DATA_DIRECTORY, "111.xml")) playlist = lib.getPlaylist("Gray") assert len(playlist) # it has items
def test_getItemsById_Integer(): lib = library.parse(os.path.join(SAMPLE_DATA_DIRECTORY, "10.xml")) item = lib.getItemsById(16116) assert item
def test_length(): lib = library.parse(os.path.join(SAMPLE_DATA_DIRECTORY,"10.xml")) assert 10 == len(lib)
def test_album(): lib = library.parse(os.path.join(SAMPLE_DATA_DIRECTORY,"10.xml")) assert "The Next Day (Deluxe Version)" == lib.items[0].album
def test_playlist_iter(): lib = library.parse(os.path.join(SAMPLE_DATA_DIRECTORY, "10.xml")) assert lib.__iter__().__iter__()
def test_getItemsForArtist_Failure(): lib = library.parse(os.path.join(SAMPLE_DATA_DIRECTORY,"10.xml")) items = lib.getItemsForArtist("Not There") assert items == []
def test_length(): lib = library.parse(os.path.join(SAMPLE_DATA_DIRECTORY, "10.xml")) assert 10 == len(lib)
def test_getItemsById_Integer(): lib = library.parse(os.path.join(SAMPLE_DATA_DIRECTORY,"10.xml")) item = lib.getItemsById(16116) assert item
def test_artist(): lib = library.parse(os.path.join(SAMPLE_DATA_DIRECTORY, "10.xml")) assert "David Bowie" == lib.items[0].artist
import os from itunesLibrary import library path = os.path.join(os.getenv("HOME"),"Music/iTunes/iTunes Music Library.xml") # must first parse... lib = library.parse(path) print(len(lib)) # number of items stored for playlist in lib.playlists: for item in playlist.items: print(item) # perform function on each item in the playlist # get a single playlist playlist = lib.getPlaylist("David Bowie") print(playlist) # get a list of all of the David Bowie songs bowie_items = lib.getItemsForArtist("David Bowie") # get a single song single_song = lib.getItemsById("16116") # get the iTunes application version print(lib.applicationVersion)
def test_empty(): lib = library.parse(os.path.join(SAMPLE_DATA_DIRECTORY, "empty.xml")) assert 0 == len(lib)
#! /usr/bin/env python -B # -*- coding: utf-8 -*- from __future__ import print_function import os,sys from itunesLibrary import library path = os.path.join(os.getenv("HOME"),"Music/iTunes/iTunes Music Library.xml") lib = library.parse(path,True) musicItems = set(lib.getPlaylist("Music").items) musicItems = sorted(list(musicItems),key=lambda k: (k.artist if k.artist else '',k.title if k.title else '',k.album if k.album else '')) for item in musicItems: print(item) sys.exit(0)
def test_album(): lib = library.parse(os.path.join(SAMPLE_DATA_DIRECTORY, "10.xml")) assert "The Next Day (Deluxe Version)" == lib.items[0].album
#! /usr/bin/env python -B # -*- coding: utf-8 -*- # Simple test script that print all items from ~/Music/iTunes/iTunes Music Library.xml import os, sys from itunesLibrary import library path = os.path.join(os.getenv("HOME"), "Music/iTunes/iTunes Music Library.xml") lib = library.parse(path, True) musicItems = set(lib.getPlaylist("Music").items) musicItems = sorted(list(musicItems), key=lambda k: (k.artist if k.artist else '', k.title if k.title else '', k.album if k.album else '')) for item in musicItems: print(item) sys.exit(0)
def test_title(): lib = library.parse(os.path.join(SAMPLE_DATA_DIRECTORY, "10.xml")) assert "The Next Day" == lib.items[0].title
def test_library_items(): lib = library.parse(os.path.join(SAMPLE_DATA_DIRECTORY,"10.xml")) assert lib.items
def test_getItemsForArtist(): lib = library.parse(os.path.join(SAMPLE_DATA_DIRECTORY, "10.xml")) assert lib.getItemsForArtist("David Bowie")
def test_playlist_iter(): lib = library.parse(os.path.join(SAMPLE_DATA_DIRECTORY,"10.xml")) assert lib.__iter__().__iter__()
def test_getItemsForArtist_Failure(): lib = library.parse(os.path.join(SAMPLE_DATA_DIRECTORY, "10.xml")) items = lib.getItemsForArtist("Not There") assert items == []
def test_artist(): lib = library.parse(os.path.join(SAMPLE_DATA_DIRECTORY,"10.xml")) assert "David Bowie" == lib.items[0].artist
def test_getItemsById(): lib = library.parse(os.path.join(SAMPLE_DATA_DIRECTORY, "10.xml")) item = lib.getItemsById("16116") assert item.album == 'The Next Day (Deluxe Version)' and item.getItunesAttribute( 'Total Time') == '178474'
def test_empty(): lib = library.parse(os.path.join(SAMPLE_DATA_DIRECTORY,"empty.xml")) assert 0 == len(lib)
def test_totalTime(): lib = library.parse(os.path.join(SAMPLE_DATA_DIRECTORY, "10.xml")) item = lib.getItemsById("16116") assert item.getItunesAttribute('Total Time') == '178474'
def test_getItemsForArtist(): lib = library.parse(os.path.join(SAMPLE_DATA_DIRECTORY,"10.xml")) assert lib.getItemsForArtist("David Bowie")
def test_getItemsById_Failure(): lib = library.parse(os.path.join(SAMPLE_DATA_DIRECTORY, "10.xml")) item = lib.getItemsById("-1") assert not item
def test_getItemsById(): lib = library.parse(os.path.join(SAMPLE_DATA_DIRECTORY,"10.xml")) item = lib.getItemsById("16116") assert item.album == 'The Next Day (Deluxe Version)' and item.getItunesAttribute('Total Time') == '178474'
print('google play music load start') # google play musicの曲リストを取得 gLibrary = mc.get_all_songs() print('google play music library loaded') # google play musicのプレイリストとそのコンテンツを取得 gPlaylistsAndContents = mc.get_all_user_playlist_contents() print('google play music playlists loaded') print('itunes load start') # itunesのライブラリファイル読み込み iLibrary = library.parse(ITUNES_MUSIC_LIBLARY_XML_PATH) print('itunes playlists loaded') # プレイリスト一覧を取得 iPlaylist = iLibrary.getPlaylist(SYNC_PLAYLIST_NAME) # プレイリスト名を表示 print("playlistName = {p}".format(p=iPlaylist.itunesAttibutes['Name'])) # 曲を登録するプレイリストID保存用変数定義 gPlaylistId = None # google play musicの一致するプレイリストを取得 filteredPlaylistsAndContentsIter = filter( lambda v: v['name'] == iPlaylist.itunesAttibutes['Name'],
def test_getItemsById_Failure(): lib = library.parse(os.path.join(SAMPLE_DATA_DIRECTORY,"10.xml")) item = lib.getItemsById("-1") assert not item
return s def addSongToPlayList(playlistID,theSong): temp = theSong song=searchSong(temp) songList = [] songList.append(song) sp.user_playlist_add_tracks(user=userID,playlist_id=playlistID,tracks=songList,position=None) #searchSong("J. Cole 2014 Forest Hills Drive Wet Dreamz") #location = input("what is the location of the xml file?") #for future users, this could be inputted so that this doesn't only work on my laptop #some Apple Music Songs don't exist or we pulled a local file from the computer and will return failed songs location = '/Users/kenichimatsuo/Desktop/XMLFiles/Library.xml' lib = library.parse(location) for i in lib.playlists: length = len(str(i)) playlistTitle = str(i)[2:length] index = 0 for j in range(len(playlistTitle)): if (playlistTitle[j]=="'"): index = j actualPlaylistTitle = playlistTitle[0:index] if(actualPlaylistTitle!="Library" and actualPlaylistTitle != "Downloaded" and actualPlaylistTitle != "Music"): identification=makePlayList(actualPlaylistTitle) #print("identification is "+identification+" playlist name is "+actualPlaylistTitle) for z in i.items: ken = str(z) try: #print("song added is "+ken)
def test_playlist(): lib = library.parse(os.path.join(SAMPLE_DATA_DIRECTORY,"111.xml")) playlist = lib.getPlaylist("Gray") assert len(playlist) # it has items
#!/usr/bin/python # -*- coding: utf-8 -*- from __future__ import print_function import os,sys from itunesLibrary import library path = os.path.join(os.getenv("HOME"),"Music/iTunes/iTunes Music Library.xml") lib = library.parse(path) musicItems = set(lib.getPlaylist("Music").items) for name in ("Steve","Laurel","Christmas"): musicItems -= set(lib.getPlaylist(name)) musicItems = sorted(list(musicItems),key=lambda k: (k.artist,k.title,k.album)) for item in musicItems: print("{0:35s} {1:40s} {2}".format(item.artist,item.title,item.album)) sys.exit(0)
def test_unicode_title(): lib = library.parse(os.path.join(SAMPLE_DATA_DIRECTORY,"unicode.xml")) item = lib.getItemsById("164") assert item.title assert item.artist == 'Blackfield'
#!/usr/bin/python # -*- coding: utf-8 -*- from __future__ import print_function import os,sys from itunesLibrary import library path = os.path.join(os.getenv("HOME"),"Music/iTunes/iTunes Music Library.xml") lib = library.parse(path,False) musicItems = set(lib.getPlaylist("Music").items) for name in ("Steve","Laurel","Christmas"): musicItems -= set(lib.getPlaylist(name)) musicItems = sorted(list(musicItems),key=lambda k: (k.artist,k.title,k.album)) for item in musicItems: print(item) sys.exit(0)