Browse Source

[utils] HTTPHeaderDict: Handle byte values

pukkandan 1 year ago
parent
commit
3f7965105d
2 changed files with 4 additions and 0 deletions
  1. 2 0
      test/test_utils.py
  2. 2 0
      yt_dlp/utils/networking.py

+ 2 - 0
test/test_utils.py

@@ -2344,6 +2344,8 @@ Line 1
 
     def test_http_header_dict(self):
         headers = HTTPHeaderDict()
+        headers['ytdl-test'] = b'0'
+        self.assertEqual(list(headers.items()), [('Ytdl-Test', '0')])
         headers['ytdl-test'] = 1
         self.assertEqual(list(headers.items()), [('Ytdl-Test', '1')])
         headers['Ytdl-test'] = '2'

+ 2 - 0
yt_dlp/utils/networking.py

@@ -65,6 +65,8 @@ class HTTPHeaderDict(collections.UserDict, dict):
         self.update(kwargs)
 
     def __setitem__(self, key, value):
+        if isinstance(value, bytes):
+            value = value.decode('latin-1')
         super().__setitem__(key.title(), str(value))
 
     def __getitem__(self, key):