Fix editing playlists on (local) filesystem
authorMarcel van der Veldt <m.vanderveldt@outlook.com>
Thu, 15 Jun 2023 19:30:15 +0000 (21:30 +0200)
committerMarcel van der Veldt <m.vanderveldt@outlook.com>
Thu, 15 Jun 2023 19:30:15 +0000 (21:30 +0200)
music_assistant/server/providers/filesystem_local/base.py

index fe41107ab28623a90a0f7a2c5cc6f222c5fa6054..fc47b44d9b1e430f4d661a756e86a34e02800d90 100644 (file)
@@ -451,7 +451,7 @@ class FileSystemProviderBase(MusicProvider):
             async for chunk in self.read_file_content(prov_playlist_id):
                 playlist_data += chunk
             encoding_details = await asyncio.to_thread(cchardet.detect, playlist_data)
-            playlist_data = playlist_data.decode(encoding_details["encoding"])
+            playlist_data = playlist_data.decode(encoding_details["encoding"] or "utf-8")
 
             if ext in ("m3u", "m3u8"):
                 playlist_lines = await parse_m3u(playlist_data)
@@ -492,7 +492,7 @@ class FileSystemProviderBase(MusicProvider):
         async for chunk in self.read_file_content(prov_playlist_id):
             playlist_data += chunk
         encoding_details = await asyncio.to_thread(cchardet.detect, playlist_data)
-        playlist_data = playlist_data.decode(encoding_details["encoding"])
+        playlist_data = playlist_data.decode(encoding_details["encoding"] or "utf-8")
         for uri in prov_track_ids:
             playlist_data += f"\n{uri}"
 
@@ -513,7 +513,7 @@ class FileSystemProviderBase(MusicProvider):
         async for chunk in self.read_file_content(prov_playlist_id):
             playlist_data += chunk
         encoding_details = await asyncio.to_thread(cchardet.detect, playlist_data)
-        playlist_data = playlist_data.decode(encoding_details["encoding"])
+        playlist_data = playlist_data.decode(encoding_details["encoding"] or "utf-8")
 
         if ext in ("m3u", "m3u8"):
             playlist_lines = await parse_m3u(playlist_data)