Added youtube dl related code
This commit is contained in:
parent
5c3db0b034
commit
1cd1916feb
1 changed files with 37 additions and 0 deletions
37
main.py
37
main.py
|
|
@ -32,6 +32,43 @@ youtubeUrlRegex = "https?:\/\/(www\.)?(youtu|youtube)\.(com|be)"
|
|||
def is_a_youtube_url(url: str):
|
||||
return bool(re.match(youtubeUrlRegex, url))
|
||||
|
||||
youtube_dl.utils.bug_reports_message = lambda: ''
|
||||
|
||||
ytdl_format_options = {
|
||||
'format': 'bestaudio/best',
|
||||
'restrictfilenames': True,
|
||||
'noplaylist': True,
|
||||
'nocheckcertificate': True,
|
||||
'ignoreerrors': False,
|
||||
'logtostderr': False,
|
||||
'quiet': True,
|
||||
'no_warnings': True,
|
||||
'default_search': 'auto',
|
||||
'source_address': '0.0.0.0' # bind to ipv4 since ipv6 addresses cause issues sometimes
|
||||
}
|
||||
|
||||
ffmpeg_options = {
|
||||
'options': '-vn'
|
||||
}
|
||||
|
||||
ytdl = youtube_dl.YoutubeDL(ytdl_format_options)
|
||||
|
||||
class YTDLSource(discord.PCMVolumeTransformer):
|
||||
def __init__(self, source, *, data, volume=0.5):
|
||||
super().__init__(source, volume)
|
||||
self.data = data
|
||||
self.title = data.get('title')
|
||||
self.url = ""
|
||||
|
||||
@classmethod
|
||||
async def from_url(cls, url, *, loop=None, stream=False):
|
||||
loop = loop or asyncio.get_event_loop()
|
||||
data = await loop.run_in_executor(None, lambda: ytdl.extract_info(url, download=not stream))
|
||||
if 'entries' in data:
|
||||
# take first item from a playlist
|
||||
data = data['entries'][0]
|
||||
filename = data['title'] if stream else ytdl.prepare_filename(data)
|
||||
return filename
|
||||
|
||||
def random_playing_gif():
|
||||
gifList = ["https://media.tenor.com/Ra6rkhDtYPwAAAAd/anime-dj.gif",
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue