diff --git a/yt_dlp/utils/traversal.py b/yt_dlp/utils/traversal.py index 76b51f53d1..65a94ccb9e 100644 --- a/yt_dlp/utils/traversal.py +++ b/yt_dlp/utils/traversal.py @@ -3,6 +3,7 @@ from __future__ import annotations import collections import collections.abc import contextlib +import dataclasses import functools import http.cookies import inspect @@ -116,6 +117,9 @@ def traverse_obj( branching = False result = None + if dataclasses.is_dataclass(obj): + obj = dataclasses.asdict(obj) + if obj is None and traverse_string: if key is ... or callable(key) or isinstance(key, slice): branching = True