| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051 |
- from pyrogram import filters
- from wbb import vc, arq, app
- from wbb.utils.errors import capture_err
- from wbb.utils.botinfo import USERBOT_ID
- import ffmpeg
- import aiohttp
- import aiofiles
- __MODULE__ = "Voice Chat"
- __HELP__ = """/joinvc - To Join A Voice Chat
- /music [SONG_NAME] - To Play Music In VC"""
- @app.on_message(filters.command("joinvc") & filters.user(USERBOT_ID))
- @capture_err
- async def joinvc(_, message):
- if vc.is_connected:
- await message.reply_text("__**Bot Is Already In Voice Chat.**__")
- return
- await vc.start(message.chat.id)
- await message.reply_text("__**Joined The Voice Chat.**__")
- @app.on_message(filters.command("music") & filters.user(USERBOT_ID))
- @capture_err
- async def play_music(_, message):
- if len(message.command) < 2:
- await message.reply_text("**Usage:**\n/music [SONG_NAME]")
- return
- m = await message.reply_text("__**Searching**__")
- query = message.text.split(None, 1)[1]
- song = (await arq.saavn(query))[0]
- await m.edit("__**Downloading**__")
- await download_and_transcode_song(song.media_url)
- await m.edit(f"__**Playing {song.song}\n**__")
- async def download_and_transcode_song(url):
- async with aiohttp.ClientSession() as session:
- async with session.get(url) as resp:
- if resp.status == 200:
- f = await aiofiles.open('song.mp3', mode='wb')
- await f.write(await resp.read())
- await f.close()
- transcode("song.mp3")
- def transcode(filename):
- ffmpeg.input(filename).output("input.raw", format='s16le',
- acodec='pcm_s16le', ac=2, ar='48k').overwrite_output().run()
- os.remove(filename)
|