From 767af7cf549e92d3a040d3d96247d03d68bca3b2 Mon Sep 17 00:00:00 2001
From: Robert Honz <exislow+github@gmail.com>
Date: Thu, 14 Nov 2024 11:13:10 +0100
Subject: [PATCH] Fixed wrong determination of file extensions. Fixes
 tamland/python-tidal#304

---
 tidalapi/media.py | 18 ++++++++----------
 1 file changed, 8 insertions(+), 10 deletions(-)

diff --git a/tidalapi/media.py b/tidalapi/media.py
index 1aaadad..4b9ceda 100644
--- a/tidalapi/media.py
+++ b/tidalapi/media.py
@@ -618,21 +618,19 @@ def get_mimetype(stream_codec, stream_url: Optional[str] = None) -> str:
     @staticmethod
     def get_file_extension(stream_url: str, stream_codec: Optional[str] = None) -> str:
         if AudioExtensions.FLAC in stream_url:
+            # If the file extension within the URL is '*.flac', this is simply a FLAC file.
             result: str = AudioExtensions.FLAC
         elif AudioExtensions.MP4 in stream_url:
-            if stream_codec:
-                if Codec.AC4 is stream_codec:
-                    result: str = AudioExtensions.MP4
-                elif Codec.FLAC is stream_codec:
-                    result: str = AudioExtensions.FLAC
-                else:
-                    result: str = AudioExtensions.M4A
-            else:
-                result: str = AudioExtensions.MP4
+            # MPEG-4 is simply a container format for different audio / video encoded lines, like FLAC, AAC, M4A etc.
+            # '*.m4a' is usually used as file extension, if the container contains only audio lines
+            # See https://en.wikipedia.org/wiki/MP4_file_format
+            result: str = AudioExtensions.M4A
         elif VideoExtensions.TS in stream_url:
+            # Video are streamed as '*.ts' files by TIDAL.
             result: str = VideoExtensions.TS
         else:
-            result: str = AudioExtensions.M4A
+            # If everything fails it might be an '*.mp4' file
+            result: str = AudioExtensions.MP4
 
         return result