from yt_dlp import YoutubeDL from youtubesearchpython.__future__ import VideosSearch from asyncio import AbstractEventLoop from config import YoutubeConfig class Youtube: def __init__(self, loop: AbstractEventLoop, config: YoutubeConfig) -> None: self.params = {} self.client = YoutubeDL(self.params) self.loop = loop self.config = config async def searchVideo(self, query: str): videosSearch = VideosSearch( query, limit=1, language=self.config.language, region=self.config.region ) return await videosSearch.next() async def get_data(self, url: str) -> str: data = await self.loop.run_in_executor( None, lambda: self.client.extract_info(url, download=False) ) print(data)