diff --git a/Commands/CloseCommand.cs b/Commands/CloseCommand.cs
index 13d833e..22319f1 100644
--- a/Commands/CloseCommand.cs
+++ b/Commands/CloseCommand.cs
@@ -85,7 +85,7 @@ public class CloseCommand : ApplicationCommandModule
 
             await using FileStream file = new FileStream(Transcriber.GetPath(ticket.id), FileMode.Open, FileAccess.Read);
             DiscordMessageBuilder message = new DiscordMessageBuilder();
-            message.WithEmbed(embed);
+            message.AddEmbed(embed);
             message.AddFiles(new Dictionary<string, Stream> { { Transcriber.GetFilename(ticket.id), file } });
 
             await logChannel.SendMessageAsync(message);
@@ -106,7 +106,7 @@ public class CloseCommand : ApplicationCommandModule
                 await using FileStream file = new FileStream(Transcriber.GetPath(ticket.id), FileMode.Open, FileAccess.Read);
 
                 DiscordMessageBuilder message = new DiscordMessageBuilder();
-                message.WithEmbed(embed);
+                message.AddEmbed(embed);
                 message.AddFiles(new Dictionary<string, Stream> { { Transcriber.GetFilename(ticket.id), file } });
 
                 await staffMember.SendMessageAsync(message);
diff --git a/Commands/TranscriptCommand.cs b/Commands/TranscriptCommand.cs
index 3f46a91..ea1067f 100644
--- a/Commands/TranscriptCommand.cs
+++ b/Commands/TranscriptCommand.cs
@@ -84,7 +84,7 @@ public class TranscriptCommand : ApplicationCommandModule
             await using FileStream file = new FileStream(Transcriber.GetPath(ticket.id), FileMode.Open, FileAccess.Read);
 
             DiscordMessageBuilder message = new DiscordMessageBuilder();
-            message.WithEmbed(new DiscordEmbedBuilder
+            message.AddEmbed(new DiscordEmbedBuilder
             {
                 Color = DiscordColor.Green,
                 Description = "Ticket " + ticket.id.ToString("00000") + " transcript generated by " + command.Member.Mention + ".\n",
@@ -101,7 +101,7 @@ public class TranscriptCommand : ApplicationCommandModule
             await using FileStream file = new FileStream(Transcriber.GetPath(ticket.id), FileMode.Open, FileAccess.Read);
 
             DiscordMessageBuilder directMessage = new DiscordMessageBuilder();
-            directMessage.WithEmbed(new DiscordEmbedBuilder
+            directMessage.AddEmbed(new DiscordEmbedBuilder
             {
                 Color = DiscordColor.Green,
                 Description = "Transcript generated!\n"
diff --git a/SupportChild.cs b/SupportChild.cs
index 9e79771..cc9bc48 100644
--- a/SupportChild.cs
+++ b/SupportChild.cs
@@ -15,7 +15,19 @@ namespace SupportChild;
 internal static class SupportChild
 {
     // Sets up a dummy client to use for logging
-    public static DiscordClient discordClient = new DiscordClient(new DiscordConfiguration { Token = "DUMMY_TOKEN", TokenType = TokenType.Bot, MinimumLogLevel = LogLevel.Debug });
+    private static readonly DiscordConfiguration config = new()
+    {
+        Token = "DUMMY_TOKEN",
+        TokenType = TokenType.Bot,
+        MinimumLogLevel = LogLevel.Debug,
+        AutoReconnect = true,
+        Intents = DiscordIntents.All,
+        LogTimestampFormat = "yyyy-MM-dd HH:mm:ss",
+        LogUnknownEvents = false
+    };
+
+    public static DiscordClient discordClient { get; private set; } = new(config);
+
     private static SlashCommandsExtension commands = null;
 
     private static void Main()
@@ -52,7 +64,6 @@ internal static class SupportChild
         {
             await discordClient.DisconnectAsync();
             discordClient.Dispose();
-            Logger.Log("Discord client disconnected.");
         }
 
         Logger.Log("Loading config \"" + Directory.GetCurrentDirectory() + Path.DirectorySeparatorChar + "config.yml\"");
@@ -81,16 +92,10 @@ internal static class SupportChild
         Logger.Log("Setting up Discord client...");
 
         // Setting up client configuration
-        DiscordConfiguration cfg = new DiscordConfiguration
-        {
-            Token = Config.token,
-            TokenType = TokenType.Bot,
-            MinimumLogLevel = Config.logLevel,
-            AutoReconnect = true,
-            Intents = DiscordIntents.All
-        };
+        config.Token = Config.token;
+        config.MinimumLogLevel = Config.logLevel;
 
-        discordClient = new DiscordClient(cfg);
+        discordClient = new DiscordClient(config);
 
         Logger.Log("Hooking events...");
         discordClient.Ready += EventHandler.OnReady;
diff --git a/SupportChild.csproj b/SupportChild.csproj
index f7e609f..77d9f3f 100644
--- a/SupportChild.csproj
+++ b/SupportChild.csproj
@@ -2,7 +2,7 @@
 
     <PropertyGroup>
         <OutputType>Exe</OutputType>
-        <Version>3.0.2.2</Version>
+        <Version>3.1.0.0</Version>
         <ApplicationIcon>ellie_icon.ico</ApplicationIcon>
         <TargetFramework>net8.0</TargetFramework>
         <StartupObject>SupportChild.SupportChild</StartupObject>
@@ -19,7 +19,7 @@
         <PackageIconUrl>https://cdn.discordapp.com/attachments/765441543100170271/914327948667011132/Ellie_Concept_2_transparent_ver.png</PackageIconUrl>
         <PackageLicenseFile>LICENSE</PackageLicenseFile>
         <PackageProjectUrl>https://toastielab.dev/Emotions-stuff/SupportChild</PackageProjectUrl>
-        <PackageVersion>3.0.2</PackageVersion>
+        <PackageVersion>3.1.0</PackageVersion>
         <LangVersion>default</LangVersion>
     </PropertyGroup>
   
@@ -31,16 +31,15 @@
       <PackageReference Include="DSharpPlus" Version="4.5.0" />
       <PackageReference Include="DSharpPlus.Interactivity" Version="4.5.0" />
       <PackageReference Include="DSharpPlus.SlashCommands" Version="4.5.0" />
-      <PackageReference Include="Gress" Version="2.1.1" />
       <PackageReference Include="JsonExtensions" Version="1.2.0" />
-      <PackageReference Include="MiniRazor.CodeGen" Version="2.2.1" />
       <PackageReference Include="MySqlConnector" Version="2.3.7" />
       <PackageReference Include="Newtonsoft.Json" Version="13.0.3" />
-      <PackageReference Include="Polly" Version="8.4.1" />
+      <PackageReference Include="Polly" Version="8.4.0" />
+      <PackageReference Include="RazorBlade" Version="0.6.0" />
       <PackageReference Include="Superpower" Version="3.0.0" />
-      <PackageReference Include="Tyrrrz.Extensions" Version="1.6.5" />
       <PackageReference Include="WebMarkupMin.Core" Version="2.17.0" />
       <PackageReference Include="YamlDotNet" Version="16.1.0" />
+      <PackageReference Include="YoutubeExplode" Version="6.4.0" />
     </ItemGroup>
   
     <ItemGroup>
diff --git a/Transcriber.cs b/Transcriber.cs
index e1981ce..ee2500b 100644
--- a/Transcriber.cs
+++ b/Transcriber.cs
@@ -24,19 +24,22 @@ internal static class Transcriber
         Channel channel = await discordClient.GetChannelAsync(new Snowflake(channelID));
         Guild guild = await discordClient.GetGuildAsync(channel.GuildId);
 
-        ExportRequest request = new ExportRequest(
-            Guild: guild,
-            Channel: channel,
-            OutputPath: GetPath(ticketID),
-            Format: ExportFormat.HtmlDark,
-            After: null,
-            Before: null,
-            PartitionLimit: PartitionLimit.Null,
-            MessageFilter: MessageFilter.Null,
-            ShouldDownloadMedia: false,
-            ShouldReuseMedia: false,
-            DateFormat: "yyyy-MMM-dd HH:mm"
-            );
+        ExportRequest request = new(
+            guild,
+            channel,
+            GetPath(ticketID),
+            null,
+            ExportFormat.HtmlDark,
+            null,
+            null,
+            PartitionLimit.Null,
+            MessageFilter.Null,
+            true,
+            false,
+            false,
+            "en-US",
+            true
+        );
 
         await exporter.ExportChannelAsync(request);
     }
diff --git a/lib/DiscordChatExporter.Core.dll b/lib/DiscordChatExporter.Core.dll
index 938808d..0023b89 100644
Binary files a/lib/DiscordChatExporter.Core.dll and b/lib/DiscordChatExporter.Core.dll differ