diff --git a/yt_dlp/YoutubeDL.py b/yt_dlp/YoutubeDL.py
index ecf14a0c3..72895eff5 100644
--- a/yt_dlp/YoutubeDL.py
+++ b/yt_dlp/YoutubeDL.py
@@ -3007,9 +3007,9 @@ def list_subtitles(self, video_id, subtitles, name='subtitles'):
             'Available %s for %s:' % (name, video_id))
 
         def _row(lang, formats):
-            exts, names = zip(*((f['ext'], f['name']) for f in reversed(formats)))
+            exts, names = zip(*((f['ext'], f.get('name', 'unknown')) for f in reversed(formats)))
             if len(set(names)) == 1:
-                names = names[:1]
+                names = [] if names[0] == 'unknown' else names[:1]
             return [lang, ', '.join(names), ', '.join(exts)]
 
         self.to_screen(render_table(