from pyrogram import filters from DragMusic import YouTube, app from DragMusic.utils.channelplay import get_channeplayCB from DragMusic.utils.decorators.language import languageCB from DragMusic.utils.stream.stream import stream from config import BANNED_USERS @app.on_callback_query(filters.regex("LiveStream") & ~BANNED_USERS) @languageCB async def play_live_stream(client, CallbackQuery, _): callback_data = CallbackQuery.data.strip() callback_request = callback_data.split(None, 1)[1] vidid, user_id, mode, cplay, fplay = callback_request.split("|") if CallbackQuery.from_user.id != int(user_id): try: return await CallbackQuery.answer(_["playcb_1"], show_alert=True) except: return try: chat_id, channel = await get_channeplayCB(_, cplay, CallbackQuery) except: return video = True if mode == "v" else None user_name = CallbackQuery.from_user.first_name await CallbackQuery.message.delete() try: await CallbackQuery.answer() except: pass mystic = await CallbackQuery.message.reply_text( _["play_2"].format(channel) if channel else _["play_1"] ) try: details, track_id = await YouTube.track(vidid, True) except: return await mystic.edit_text(_["play_3"]) ffplay = True if fplay == "f" else None if not details["duration_min"]: try: await stream( _, mystic, user_id, details, chat_id, user_name, CallbackQuery.message.chat.id, video, streamtype="live", forceplay=ffplay, ) except Exception as e: ex_type = type(e).__name__ err = e if ex_type == "AssistantErr" else _["general_2"].format(ex_type) return await mystic.edit_text(err) else: return await mystic.edit_text("» ɴᴏᴛ ᴀ ʟɪᴠᴇ sᴛʀᴇᴀᴍ.") await mystic.delete()