mirror of
				https://github.com/yt-dlp/yt-dlp.git
				synced 2025-10-30 22:25:19 +00:00 
			
		
		
		
	[cache] Fix writing to paths with unicode characters
* Use "compat_getenv" * "write_json_file" now expects the filename to be a string
This commit is contained in:
		| @@ -1001,7 +1001,7 @@ class YoutubeDL(object): | |||||||
|             else: |             else: | ||||||
|                 self.to_screen('[info] Writing video description metadata as JSON to: ' + infofn) |                 self.to_screen('[info] Writing video description metadata as JSON to: ' + infofn) | ||||||
|                 try: |                 try: | ||||||
|                     write_json_file(info_dict, encodeFilename(infofn)) |                     write_json_file(info_dict, infofn) | ||||||
|                 except (OSError, IOError): |                 except (OSError, IOError): | ||||||
|                     self.report_error('Cannot write metadata to JSON file ' + infofn) |                     self.report_error('Cannot write metadata to JSON file ' + infofn) | ||||||
|                     return |                     return | ||||||
|   | |||||||
| @@ -8,7 +8,7 @@ import re | |||||||
| import shutil | import shutil | ||||||
| import traceback | import traceback | ||||||
|  |  | ||||||
| from .compat import compat_expanduser | from .compat import compat_expanduser, compat_getenv | ||||||
| from .utils import write_json_file | from .utils import write_json_file | ||||||
|  |  | ||||||
|  |  | ||||||
| @@ -19,7 +19,7 @@ class Cache(object): | |||||||
|     def _get_root_dir(self): |     def _get_root_dir(self): | ||||||
|         res = self._ydl.params.get('cachedir') |         res = self._ydl.params.get('cachedir') | ||||||
|         if res is None: |         if res is None: | ||||||
|             cache_root = os.environ.get('XDG_CACHE_HOME', '~/.cache') |             cache_root = compat_getenv('XDG_CACHE_HOME', '~/.cache') | ||||||
|             res = os.path.join(cache_root, 'youtube-dl') |             res = os.path.join(cache_root, 'youtube-dl') | ||||||
|         return compat_expanduser(res) |         return compat_expanduser(res) | ||||||
|  |  | ||||||
|   | |||||||
| @@ -73,6 +73,7 @@ def preferredencoding(): | |||||||
| def write_json_file(obj, fn): | def write_json_file(obj, fn): | ||||||
|     """ Encode obj as JSON and write it to fn, atomically """ |     """ Encode obj as JSON and write it to fn, atomically """ | ||||||
|  |  | ||||||
|  |     fn = encodeFilename(fn) | ||||||
|     if sys.version_info < (3, 0): |     if sys.version_info < (3, 0): | ||||||
|         encoding = get_filesystem_encoding() |         encoding = get_filesystem_encoding() | ||||||
|         # os.path.basename returns a bytes object, but NamedTemporaryFile |         # os.path.basename returns a bytes object, but NamedTemporaryFile | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user
	 Jaime Marquínez Ferrándiz
					Jaime Marquínez Ferrándiz