Created
February 26, 2021 09:17
-
-
Save Kakarot-2000/e34b6d4683c2b6b511a0f2277cdecc4a 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