當前位置: 首頁>>代碼示例>>Python>>正文


Python Musicmanager.get_uploaded_songs方法代碼示例

本文整理匯總了Python中gmusicapi.Musicmanager.get_uploaded_songs方法的典型用法代碼示例。如果您正苦於以下問題:Python Musicmanager.get_uploaded_songs方法的具體用法?Python Musicmanager.get_uploaded_songs怎麽用?Python Musicmanager.get_uploaded_songs使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在gmusicapi.Musicmanager的用法示例。


在下文中一共展示了Musicmanager.get_uploaded_songs方法的4個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Python代碼示例。

示例1: main

# 需要導入模塊: from gmusicapi import Musicmanager [as 別名]
# 或者: from gmusicapi.Musicmanager import get_uploaded_songs [as 別名]
def main():
    if len(sys.argv) != 2:
        print_help()
        sys.exit(1)
    else:
        username = sys.argv[1]
    password = getpass.getpass()

    mc = Mobileclient()
    mc.login(username, password, Mobileclient.FROM_MAC_ADDRESS)

    mm = Musicmanager()
    mm.perform_oauth()
    mm.login()

    uploaded_songs = mm.get_uploaded_songs()
    uploaded_ids = [track['id'] for track in uploaded_songs]
    for part in chunks(uploaded_ids, 100):
        complete = mc.delete_songs(part)
        if len(complete) != len(part):
            print("Something is wrong")
開發者ID:rattboi,項目名稱:gmusic-local-sync,代碼行數:23,代碼來源:delete_all_uploaded.py

示例2: Musicmanager

# 需要導入模塊: from gmusicapi import Musicmanager [as 別名]
# 或者: from gmusicapi.Musicmanager import get_uploaded_songs [as 別名]
    parser.add_argument('-r', '--refresh', required=False, help='Refresh Library.', action="store_true")
    parser.add_argument('-d', '--display', required=False, help='Display playlist only.', action="store_true")
    parser.add_argument('-t', '--artist', required=False, help='Artist Filter' )
    args = parser.parse_args()    

    mm = Musicmanager()
    if args.login:
        mm.perform_oath()
        sys.exit(0)

    print "Logging In..."
    mm.login()

    if args.refresh:
        print "Getting Songs"
        library = mm.get_uploaded_songs()
        with open('library.txt','w') as f:
            pickle.dump( library, f)

    print "Loading Library..."
    with open('library.txt','r') as f:
        library = pickle.load( f )

    # Create playlist
    playlist = []
    for song in library:
        if args.artist:
            if args.artist.lower() not in song['artist'].lower():
                continue

        playlist.append( song )
開發者ID:mdepoint,項目名稱:gmusic-player,代碼行數:33,代碼來源:gplayer.py

示例3: Musicmanager

# 需要導入模塊: from gmusicapi import Musicmanager [as 別名]
# 或者: from gmusicapi.Musicmanager import get_uploaded_songs [as 別名]
from gmusicapi import Musicmanager
import os.path
storage_filepath = '/home/alex/.local/share/gmusicapi/oauth.cred'
mm = Musicmanager()
if os.path.isfile(storage_filepath):
    mm.login()
else:
    Musicmanager.perform_oauth(storage_filepath, open_browser=True)
songs = mm.get_uploaded_songs(incremental=False)
print(songs)
song_id = []
for x in songs:
    song_id.append(x.get('id'))
print(song_id)
for an_id in song_id:
    filename, audio = mm.download_song(an_id)
    with open(filename, 'wb') as f:
        f.write(audio)

input("Enter: ")
mm.logout(revoke_oauth=False)
開發者ID:Westie1012,項目名稱:gmusic-streaming,代碼行數:23,代碼來源:download.py

示例4: FreeClient

# 需要導入模塊: from gmusicapi import Musicmanager [as 別名]
# 或者: from gmusicapi.Musicmanager import get_uploaded_songs [as 別名]
class FreeClient(Client):
    """
    Client for free users with limited functionality.
      Free users only have access to songs that they have either purchased
      or uploaded, and they must be downloaded before they can be played.
      Artists and albums cannot be generated, so the expand and radio methods
      have no use.
    """
    def __init__(self):
        """
        Log into Musicmanager and get the library, either by loading an
          existing library file, or by generating a new one.
        """
        self.kind = 'free'
        self.mm = Musicmanager()
        self.mm.login()
        self.songs = []
        self.load_library()
        if not self.songs:
            self.gen_library()

    def load_library(self):
        path = join(common.DATA_DIR, 'library.zip')
        common.w.outbar_msg('Loading library...')
        if not isfile(path):
            common.w.addstr(common.w.infobar, 'Could not find library file.')
            return
        try:
            with zipfile.ZipFile(path) as z:
                try:
                    lib = json.loads(z.read('library.json').decode('utf-8'))
                except json.JSONDecodeError:  # The .json file is invalid.
                    common.w.addstr(
                        common.w.infobar, 'Library file is corrupt.'
                    )
                    return
        except zipfile.BadZipFile:  # The .zip file is invalid.
            common.w.addstr(common.w.infobar, 'Library file is corrupt.')
            return

        for item in lib['songs']:
            try:
                self.songs.append(
                    music_objects.LibrarySong(item, source='json'))
            except KeyError:  # The file has the wrong data.
                common.w.addstr(common.w.infobar, 'Library file is corrupt.')
                return

        l = len(self.songs)
        common.w.outbar_msg('Loaded %s song%s.' % (l, '' if l is 1 else 's'))

    def gen_library(self):
        ids = []  # Avoid duplicates between purchased and uploaded songs.
        common.w.outbar_msg('Generating your library...')

        for song in self.mm.get_uploaded_songs():
            if song['id'] not in ids:
                self.songs.append(music_objects.LibrarySong(song))
                ids.append(song['id'])
        for song in self.mm.get_purchased_songs():
            if song['id'] not in ids:
                self.songs.append(music_objects.LibrarySong(song))
                ids.append(song['id'])
        # Todo: Use something other than json for library storage since it
        # doesn't really make logical sense (songs is a list, not a dict),
        # but for now it's very easy to use.
        with zipfile.ZipFile(join(common.DATA_DIR, 'library.zip'), 'w') as z:
            z.writestr('library.json', json.dumps({'songs': self.songs}))
        l = len(self.songs)
        common.w.outbar_msg(
            'Generated %d song%s.' % (l, '' if l is 1 else 's')
        )
        common.w.now_playing()

    def expand(self, arg=None):
        """
        Artists/albums cannot be generated. so free users cannot expand songs..

        Keyword arguments:
        arg=None: Irrelevant.
        """
        common.q.error_msg('Free users cannot use expand')

    def radio(self, arg=None):
        """
        Artists/albums cannot be generated. so free users cannot create radio
        stations.

        Keyword arguments:
        arg=None: Irrelevant.
        """
        common.q.error_msg('Free users cannot use radio')

    def search(self, query):
        """
        Search the library for some query. and update the
          view with the results.

        Keyword arguments:
        query=None: The search query.
#.........這裏部分代碼省略.........
開發者ID:christopher-dG,項目名稱:pmcli,代碼行數:103,代碼來源:client.py


注:本文中的gmusicapi.Musicmanager.get_uploaded_songs方法示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。