Created
February 26, 2021 09:20
-
-
Save Kakarot-2000/efb63f812a8c3c1b70a5e27f55950182 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment