[utils] Fix match_str for boolean meta fields
[youtube-dl] / youtube_dl / utils.py
index 027d12785da68055477b0bd7475cfd25e4678c6b..574284e944508340ea603e8e047008edee8a35ae 100644 (file)
@@ -2574,8 +2574,8 @@ def _match_one(filter_part, dct):
         return op(actual_value, comparison_value)
 
     UNARY_OPERATORS = {
-        '': lambda v: v is not None,
-        '!': lambda v: v is None,
+        '': lambda v: (v is True) if isinstance(v, bool) else (v is not None),
+        '!': lambda v: (v is False) if isinstance(v, bool) else (v is None),
     }
     operator_rex = re.compile(r'''(?x)\s*
         (?P<op>%s)\s*(?P<key>[a-z_]+)