diff --git a/src/invidious.cr b/src/invidious.cr
index e1e9af2a..24dcaf7e 100644
--- a/src/invidious.cr
+++ b/src/invidious.cr
@@ -186,7 +186,7 @@ spawn do
   end
 end
 
-connection_channel = Channel({Bool, Channel(PQ::Notification)}).new
+connection_channel = Channel({Bool, Channel(PQ::Notification)}).new(32)
 spawn do
   connections = [] of Channel(PQ::Notification)
 
diff --git a/src/invidious/helpers/helpers.cr b/src/invidious/helpers/helpers.cr
index 699fc374..2dd50d42 100644
--- a/src/invidious/helpers/helpers.cr
+++ b/src/invidious/helpers/helpers.cr
@@ -662,7 +662,7 @@ def copy_in_chunks(input, output, chunk_size = 4096)
 end
 
 def create_notification_stream(env, proxies, config, kemal_config, decrypt_function, topics, connection_channel)
-  connection = Channel(PQ::Notification).new
+  connection = Channel(PQ::Notification).new(8)
   connection_channel.send({true, connection})
 
   locale = LOCALES[env.get("preferences").as(Preferences).locale]?
@@ -750,6 +750,10 @@ def create_notification_stream(env, proxies, config, kemal_config, decrypt_funct
         video_id = notification["videoId"].as_s
         published = notification["published"].as_i64
 
+        if !topics.try &.includes? topic
+          next
+        end
+
         video = get_video(video_id, PG_DB, proxies)
         video.published = Time.unix(published)
         response = JSON.parse(video.to_json(locale, config, Kemal.config, decrypt_function))
@@ -763,14 +767,12 @@ def create_notification_stream(env, proxies, config, kemal_config, decrypt_funct
           end
         end
 
-        if topics.try &.includes? topic
-          env.response.puts "id: #{id}"
-          env.response.puts "data: #{response.to_json}"
-          env.response.puts
-          env.response.flush
+        env.response.puts "id: #{id}"
+        env.response.puts "data: #{response.to_json}"
+        env.response.puts
+        env.response.flush
 
-          id += 1
-        end
+        id += 1
       end
     rescue ex
     ensure