|
|
|
|
|
|
|
|
|
|
|
|
|
""" |
|
β Commands Available - |
|
|
|
β’ `{i}yta <(youtube/any) link>` |
|
Download audio from the link. |
|
|
|
β’ `{i}ytv <(youtube/any) link>` |
|
Download video from the link. |
|
|
|
β’ `{i}ytsa <(youtube) search query>` |
|
Search and download audio from youtube. |
|
|
|
β’ `{i}ytsv <(youtube) search query>` |
|
Search and download video from youtube. |
|
""" |
|
from pyUltroid.fns.ytdl import download_yt, get_yt_link |
|
|
|
from . import get_string, requests, ultroid_cmd |
|
|
|
|
|
@ultroid_cmd( |
|
pattern="yt(a|v|sa|sv) ?(.*)", |
|
) |
|
async def download_from_youtube_(event): |
|
ytd = { |
|
"prefer_ffmpeg": True, |
|
"addmetadata": True, |
|
"geo-bypass": True, |
|
"nocheckcertificate": True, |
|
} |
|
opt = event.pattern_match.group(1).strip() |
|
xx = await event.eor(get_string("com_1")) |
|
if opt == "a": |
|
ytd["format"] = "bestaudio" |
|
ytd["outtmpl"] = "%(id)s.m4a" |
|
url = event.pattern_match.group(2) |
|
if not url: |
|
return await xx.eor(get_string("youtube_1")) |
|
try: |
|
requests.get(url) |
|
except BaseException: |
|
return await xx.eor(get_string("youtube_2")) |
|
elif opt == "v": |
|
ytd["format"] = "best" |
|
ytd["outtmpl"] = "%(id)s.mp4" |
|
ytd["postprocessors"] = [{"key": "FFmpegMetadata"}] |
|
url = event.pattern_match.group(2) |
|
if not url: |
|
return await xx.eor(get_string("youtube_3")) |
|
try: |
|
requests.get(url) |
|
except BaseException: |
|
return await xx.eor(get_string("youtube_4")) |
|
elif opt == "sa": |
|
ytd["format"] = "bestaudio" |
|
ytd["outtmpl"] = "%(id)s.m4a" |
|
try: |
|
query = event.text.split(" ", 1)[1] |
|
except IndexError: |
|
return await xx.eor(get_string("youtube_5")) |
|
url = get_yt_link(query) |
|
if not url: |
|
return await xx.edit(get_string("unspl_1")) |
|
await xx.eor(get_string("youtube_6")) |
|
elif opt == "sv": |
|
ytd["format"] = "best" |
|
ytd["outtmpl"] = "%(id)s.mp4" |
|
ytd["postprocessors"] = [{"key": "FFmpegMetadata"}] |
|
try: |
|
query = event.text.split(" ", 1)[1] |
|
except IndexError: |
|
return await xx.eor(get_string("youtube_7")) |
|
url = get_yt_link(query) |
|
if not url: |
|
return await xx.edit(get_string("unspl_1")) |
|
await xx.eor(get_string("youtube_8")) |
|
else: |
|
return |
|
await download_yt(xx, url, ytd) |
|
|