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