Team Ai
Apppublic

azils3/bash

sourceHugging Faceupdated 2y agoView on Hugging Face
0likes
youtube.py86 linesDownload Raw Back to plugins
1# Ultroid - UserBot2# Copyright (C) 2021-2025 TeamUltroid3#4# This file is a part of < https://github.com/TeamUltroid/Ultroid/ >5# PLease read the GNU Affero General Public License in6# <https://www.github.com/TeamUltroid/Ultroid/blob/main/LICENSE/>.7"""8✘ Commands Available -9 10• `{i}yta <(youtube/any) link>`11   Download audio from the link.12 13• `{i}ytv <(youtube/any) link>`14   Download video  from the link.15 16• `{i}ytsa <(youtube) search query>`17   Search and download audio from youtube.18 19• `{i}ytsv <(youtube) search query>`20   Search and download video from youtube.21"""22from pyUltroid.fns.ytdl import download_yt, get_yt_link23 24from . import get_string, requests, ultroid_cmd25 26 27@ultroid_cmd(28    pattern="yt(a|v|sa|sv) ?(.*)",29)30async def download_from_youtube_(event):31    ytd = {32        "prefer_ffmpeg": True,33        "addmetadata": True,34        "geo-bypass": True,35        "nocheckcertificate": True,36    }37    opt = event.pattern_match.group(1).strip()38    xx = await event.eor(get_string("com_1"))39    if opt == "a":40        ytd["format"] = "bestaudio"41        ytd["outtmpl"] = "%(id)s.m4a"42        url = event.pattern_match.group(2)43        if not url:44            return await xx.eor(get_string("youtube_1"))45        try:46            requests.get(url)47        except BaseException:48            return await xx.eor(get_string("youtube_2"))49    elif opt == "v":50        ytd["format"] = "best"51        ytd["outtmpl"] = "%(id)s.mp4"52        ytd["postprocessors"] = [{"key": "FFmpegMetadata"}]53        url = event.pattern_match.group(2)54        if not url:55            return await xx.eor(get_string("youtube_3"))56        try:57            requests.get(url)58        except BaseException:59            return await xx.eor(get_string("youtube_4"))60    elif opt == "sa":61        ytd["format"] = "bestaudio"62        ytd["outtmpl"] = "%(id)s.m4a"63        try:64            query = event.text.split(" ", 1)[1]65        except IndexError:66            return await xx.eor(get_string("youtube_5"))67        url = get_yt_link(query)68        if not url:69            return await xx.edit(get_string("unspl_1"))70        await xx.eor(get_string("youtube_6"))71    elif opt == "sv":72        ytd["format"] = "best"73        ytd["outtmpl"] = "%(id)s.mp4"74        ytd["postprocessors"] = [{"key": "FFmpegMetadata"}]75        try:76            query = event.text.split(" ", 1)[1]77        except IndexError:78            return await xx.eor(get_string("youtube_7"))79        url = get_yt_link(query)80        if not url:81            return await xx.edit(get_string("unspl_1"))82        await xx.eor(get_string("youtube_8"))83    else:84        return85    await download_yt(xx, url, ytd)86