# Buggy code
def __init__(
    self,
    bot: Red,
    scope: str,
    author: int,
    playlist_id: int,
    name: str,
    playlist_url: Optional[str] = None,
    tracks: Optional[List[dict]] = None,
    guild: Union[discord.Guild, int, None] = None,
):
    self.bot = bot
    self.guild = guild
    self.scope = standardize_scope(scope)
    self.config_scope = _prepare_config_scope(self.scope, author, guild)
    self.author = author
    self.guild_id = (
        getattr(guild, "id", guild)
        if self.scope == PlaylistScope.GLOBAL.value
        else None
    )
    self.id = playlist_id
    self.name = name
    self.url = playlist_url
    self.tracks = tracks or []
    self.tracks_obj = [lavalink.Track(data=track) for track in self.tracks]


# Traceback (RuntimeError)
Traceback (most recent call last):
File "/home/martinebots/martinebotsvenv/lib/python3.7/site-packages/discord/ext/commands/core.py", line 79, in wrapped
ret = await coro(*args, **kwargs)
File "/home/martinebots/martinebotscogs/cogs_modified/audio/audio.py", line 3183, in play
await self._enqueue_tracks(ctx, query)
File "/home/martinebots/martinebotscogs/cogs_modified/audio/audio.py", line 3885, in _enqueue_tracks
result, called_api = await self.music_cache.lavalink_query(ctx, player, query)
File "/home/martinebots/martinebotscogs/cogs_modified/audio/apis.py", line 911, in lavalink_query
results = await player.load_tracks(query)
File "/home/martinebots/martinebotsvenv/lib/python3.7/site-packages/lavalink/rest_api.py", line 300, in load_tracks
self.__check_node_ready()
File "/home/martinebots/martinebotsvenv/lib/python3.7/site-packages/lavalink/rest_api.py", line 268, in __check_node_ready
raise RuntimeError("Cannot execute REST request when node not ready.")
RuntimeError: Cannot execute REST request when node not ready.

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
File "/home/martinebots/martinebotsvenv/lib/python3.7/site-packages/discord/ext/commands/bot.py", line 863, in invoke
await ctx.command.invoke(ctx)
File "/home/martinebots/martinebotsvenv/lib/python3.7/site-packages/discord/ext/commands/core.py", line 728, in invoke
await injected(*ctx.args, **ctx.kwargs)
File "/home/martinebots/martinebotsvenv/lib/python3.7/site-packages/discord/ext/commands/core.py", line 88, in wrapped
raise CommandInvokeError(exc) from exc
discord.ext.commands.errors.CommandInvokeError: Command raised an exception: RuntimeError: Cannot execute REST request when node not ready.```

# Fixed code
def __init__(
    self,
    bot: Red,
    scope: str,
    author: int,
    playlist_id: int,
    name: str,
    playlist_url: Optional[str] = None,
    tracks: Optional[List[MutableMapping]] = None,
    guild: Union[discord.Guild, int, None] = None,
):
    self.bot = bot
    self.guild = guild
    self.scope = standardize_scope(scope)
    self.config_scope = _prepare_config_scope(self.scope, author, guild)
    self.scope_id = self.config_scope[-1]
    self.author = author
    self.author_id = getattr(self.author, "id", self.author)
    self.guild_id = (
        getattr(guild, "id", guild)
        if self.scope == PlaylistScope.GLOBAL.value
        else None
    )
    self.id = playlist_id
    self.name = name
    self.url = playlist_url
    self.tracks = tracks or []
    self.tracks_obj = [lavalink.Track(data=track) for track in self.tracks]