remhnk (python3, doesn't expire)
import listen
import discord
from discord.ext import commands
import websockets
import json
import time
import asyncio
b = ""

class listen:
        """Beta. Please don't run yet."""

        def __init__(self, bot):
                self.bot = bot

        async def whiile(websocket, ctx, timee):
                        time.sleep(timee/1000)
                        await websocket.send('{ "op": 9 }')
                        c = json.loads(await websocket.recv())
                        c = json.loads(await websocket.recv())
                        if c["op"] == 1:
                                await ctx.send("Currently playing: " + c["d"]["song"]["title"])

        @commands.command()
        async def listen_moe(self, ctx):
#               if ctx.message.author.voice.is_connected() == True:
#                       await ctx.message.author.voice.disconnect()
                if ctx.message.author.voice == None:
                        await ctx.send("I'm only going to play listen.moe if you're there to listen with me. ;-;")
                else:
                        a = await ctx.message.author.voice.channel.connect()
                        a.play(discord.FFmpegPCMAudio("https://listen.moe/stream"))
                        async with websockets.connect("wss://listen.moe/gateway") as web:
                                await web.send('{ "op": 0, "d": {"auth": "" } }')
                                b = json.loads(await web.recv())
                                c = json.loads(await web.recv())
                                await ctx.send("Joined Listen.moe! Currently playing: " + c["d"]["song"]["title"])
                                lsock =  listen.whiile(web, ctx, b["d"]["heartbeat"])
                                asyncio.get_event_loop().run_until_complete(lsock)
                                asyncio.get_event_loop().run_forever()
        @commands.command()
        async def stop(self, ctx):
                if ctx.voice_client:
                        ctx.voice_client.source.cleanup()
                        await ctx.voice_client.disconnect()


def setup(bot):
        bot.add_cog(listen(bot))