From ae4a511a7e2ff2f542aba16328391b05f473dbad Mon Sep 17 00:00:00 2001 From: Benjamin Loison Date: Sat, 4 Feb 2023 14:13:29 +0100 Subject: [PATCH] Add `metadata_extracter.py` --- metadata_extracter.py | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 metadata_extracter.py diff --git a/metadata_extracter.py b/metadata_extracter.py new file mode 100644 index 0000000..0f21ebc --- /dev/null +++ b/metadata_extracter.py @@ -0,0 +1,36 @@ +import subprocess, json + +def execute(command): + return subprocess.check_output(command, shell = True).decode('utf-8') + +def getJSON(command): + return json.loads(execute(command)) + +SAPISIDHASH = 'CENSORED' +SECURE_3PSID = 'CENSORED' +SECURE_3PAPISID = 'CENSORED' +CHANNEL_ID = 'CENSORED' +ON_BEHALF_OF_USER = 'CENSORED' +# `TAB` can either be `Music` or `Sound effects` +TAB = 'Music' + +allTracks = [] +nextPageToken = '' +TAB_REQUEST = '' if TAB == 'Music' else ',"filter":{"trackTypeIn":{"values":["CREATOR_MUSIC_TRACK_TYPE_SOUNDEFFECT"]}}' + +while True: + command = f"curl -s 'https://studio.youtube.com/youtubei/v1/creator_music/list_tracks' -H 'Content-Type: application/json' -H 'Authorization: SAPISIDHASH {SAPISIDHASH}' -H 'X-Goog-AuthUser: 0' -H 'Origin: https://studio.youtube.com' -H 'Cookie: __Secure-3PSID={SECURE_3PSID}; __Secure-3PAPISID={SECURE_3PAPISID}'" + ' --data-raw \'{"channelId":"' + CHANNEL_ID + '"' + TAB_REQUEST + ',"pageInfo":{"pageSize":100' + ('' if nextPageToken == '' else f',"pageToken":"{nextPageToken}"') + '},"context":{"client":{"clientName":62,"clientVersion":"1.20230201"},"user":{"onBehalfOfUser":"' + ON_BEHALF_OF_USER + '"}}}\'' + + data = getJSON(command) + allTracks += data['tracks'] + print(len(allTracks)) + + pageInfo = data['pageInfo'] + if 'nextPageToken' in pageInfo: + nextPageToken = pageInfo['nextPageToken'] + else: + break + +with open('music.json', 'w') as f: + json.dump(allTracks, f, indent=4) +