diff --git a/TikTokApi/tiktok.py b/TikTokApi/tiktok.py index 812f7d11..de7546ac 100644 --- a/TikTokApi/tiktok.py +++ b/TikTokApi/tiktok.py @@ -879,6 +879,22 @@ def get_music_object_full(self, id, **kwargs): j_raw = self.__extract_tag_contents(r.text) return json.loads(j_raw)["props"]["pageProps"]["musicInfo"] + def get_music_object_full_by_api(self, id, **kwargs): + ( + region, + language, + proxy, + maxCount, + did, + ) = self.__process_kwargs__(kwargs) + kwargs["custom_did"] = did + + api_url = "{}node/share/music/-{}?{}".format( + BASE_URL, id, self.__add_new_params__() + ) + res = self.get_data(url=api_url, **kwargs) + return res['musicInfo'] + def by_hashtag(self, hashtag, count=30, offset=0, **kwargs) -> dict: """Returns a dictionary listing TikToks with a specific hashtag. diff --git a/tests/test_getMusicObjectFullByApi.py b/tests/test_getMusicObjectFullByApi.py new file mode 100644 index 00000000..c1472e79 --- /dev/null +++ b/tests/test_getMusicObjectFullByApi.py @@ -0,0 +1,12 @@ +from TikTokApi import TikTokApi +import os + +api = TikTokApi.get_instance( + custom_verifyFp=os.environ.get("verifyFp", None), use_test_endpoints=True +) + + +def test_get_music_object_full_by_api(): + music_id = "6819262113299565318" + res = api.get_music_object_full_by_api(music_id) + assert res['music']['id'] == music_id