import asyncio import argparse from mopidy_async_client import MopidyClient parser = argparse.ArgumentParser(description="Mopdiy FloppyPlayer") parser.add_argument("URI_string", help="Mopdiy URI to Album/Playlist.") args = parser.parse_args() inputURI = args.URI_string async def playback_started_handler(data): print(data) async def all_events_handler(event, data): print(event, data) async def main3(): if inputURI == "stop": await stop() elif inputURI == "current_track": await current_track() else: await main1() async def stop(): mopidy = await MopidyClient().connect() await mopidy.playback.stop() await mopidy.disconnect() async def current_track(): mopidy = await MopidyClient().connect() res = await mopidy.playback.get_current_track() current_data = { "Artist": res["artists"][0]["name"], "Album": res["album"]["name"], "Song": res["name"], } print(current_data) await mopidy.disconnect() async def main1(): link = inputURI.split(" - ")[1] async with MopidyClient( url="ws://127.0.0.1:6680/mopidy/ws" ) as mopidy: # close connection explicit await mopidy.playback.stop() await mopidy.tracklist.clear() await mopidy.tracklist.add(uris=[link]) await mopidy.playback.play() async def main2(): mopidy = await MopidyClient().connect() await mopidy.playback.stop() await mopidy.tracklist.clear() await mopidy.tracklist.add(uris=[inputURI]) await mopidy.playback.play() mopidy.listener.bind("track_playback_started", playback_started_handler) mopidy.listener.bind("*", all_events_handler) # your app logic for i in range(10): # res = await mopidy.tracklist.get_tracks() res = await mopidy.playback.get_current_track() print(res) await asyncio.sleep(5) # end your app logic await mopidy.disconnect() # close connection implicit # asyncio.run(main1()) # or # asyncio.run(main2()) asyncio.run(main3())