]> jfr.im git - yt-dlp.git/blobdiff - yt_dlp/utils.py
Improve output template internal formatting
[yt-dlp.git] / yt_dlp / utils.py
index 08e2d19d27deaac8059dcdf1f07cff3249528a06..baa2a415e4f83005a66a8ddb9a79ae8b116a556e 100644 (file)
@@ -6112,11 +6112,11 @@ def traverse_dict(dictn, keys, casesense=True):
                 key = key.lower()
             dictn = dictn.get(key)
         elif isinstance(dictn, (list, tuple, compat_str)):
-            key, n = int_or_none(key), len(dictn)
-            if key is not None and -n <= key < n:
-                dictn = dictn[key]
+            if ':' in key:
+                key = slice(*map(int_or_none, key.split(':')))
             else:
-                dictn = None
+                key = int_or_none(key)
+            dictn = try_get(dictn, lambda x: x[key])
         else:
             return None
     return dictn