aboutsummaryrefslogtreecommitdiff
path: root/code/utils/media_api_key.py
diff options
context:
space:
mode:
authorParker <contact@pkrm.dev>2024-07-20 19:02:11 -0500
committerParker <contact@pkrm.dev>2024-07-20 19:02:11 -0500
commitd6a713a9488d9d3204e9a1374b808b8775179349 (patch)
tree69f1a2c90771e2c8a84a85205b8aed400ebc71a8 /code/utils/media_api_key.py
parentfda03dff62cc7967bd279777a012a22ddaa6ad34 (diff)
Automatically retrieve Apple Music media API key
Diffstat (limited to 'code/utils/media_api_key.py')
-rw-r--r--code/utils/media_api_key.py28
1 files changed, 28 insertions, 0 deletions
diff --git a/code/utils/media_api_key.py b/code/utils/media_api_key.py
new file mode 100644
index 0000000..b738302
--- /dev/null
+++ b/code/utils/media_api_key.py
@@ -0,0 +1,28 @@
+import requests
+import re
+
+from utils.config import LOG
+
+"""
+Search through the JS files on the Apple Music website to pull
+a media API key
+"""
+
+
+def get_media_api_key():
+ url = "https://music.apple.com"
+ response = requests.get(url)
+
+ js_files = re.findall(r"assets/(.*?\.js)", response.text)
+
+ # Look for `const Ga="TOKEN HERE"`
+ for js_file in js_files:
+ response = requests.get(f"{url}/assets/{js_file}")
+ match = re.search(r"const Ga=\"(.*?)\"", response.text)
+ if match:
+ return match.group(1)
+
+ LOG.error(
+ "Failed to find media API key. Apple Music support will not work until a key is found or manually set."
+ )
+ return None