From d88126e79e3fba9f5040df1a69f14d1c60ac0e71 Mon Sep 17 00:00:00 2001 From: Jose Collado Date: Mon, 12 Sep 2022 22:00:45 +0200 Subject: [PATCH] feat: tiktok sessionId can be specified in the config.toml --- TTS/TikTok.py | 18 ++++++++++++------ utils/.config.template.toml | 5 +++-- 2 files changed, 15 insertions(+), 8 deletions(-) diff --git a/TTS/TikTok.py b/TTS/TikTok.py index 743118c..ebd8cb5 100644 --- a/TTS/TikTok.py +++ b/TTS/TikTok.py @@ -62,11 +62,14 @@ noneng = [ class TikTok: # TikTok Text-to-Speech Wrapper def __init__(self): - self.URI_BASE = ( - "https://api16-normal-useast5.us.tiktokv.com/media/api/text/speech/invoke/?text_speaker=" - ) - self.max_chars = 300 + self.URI_BASE = "https://api22-normal-c-useast1a.tiktokv.com/media/api/text/speech/invoke/?text_speaker=" + self.max_chars = 200 self.voices = {"human": human, "nonhuman": nonhuman, "noneng": noneng} + self.headers = { + "User-Agent": "com.zhiliaoapp.musically/2022600030 (Linux; U; Android 7.1.2; es_ES; SM-G988N; Build/NRD90M;tt-ok/3.12.13.1)", + "Cookie": "sessionid=" + + settings.config["settings"]["tts"]["tiktok_sessionid"], + } def run(self, text, filepath, random_voice: bool = False): # if censor: @@ -81,7 +84,8 @@ class TikTok: # TikTok Text-to-Speech Wrapper ) ) try: - r = requests.post(f"{self.URI_BASE}{voice}&req_text={text}&speaker_map_type=0") + url = f"{self.URI_BASE}{voice}&req_text={text}&speaker_map_type=0&aid=1233" + r = requests.post(url, headers=self.headers) except requests.exceptions.SSLError: # https://stackoverflow.com/a/47475019/18516611 session = requests.Session() @@ -89,7 +93,9 @@ class TikTok: # TikTok Text-to-Speech Wrapper adapter = HTTPAdapter(max_retries=retry) session.mount("http://", adapter) session.mount("https://", adapter) - r = session.post(f"{self.URI_BASE}{voice}&req_text={text}&speaker_map_type=0") + r = session.post( + f"{self.URI_BASE}{voice}&req_text={text}&speaker_map_type=0" + ) # print(r.text) vstr = [r.json()["data"]["v_str"]][0] b64d = base64.b64decode(vstr) diff --git a/utils/.config.template.toml b/utils/.config.template.toml index adbaed0..ccc4694 100644 --- a/utils/.config.template.toml +++ b/utils/.config.template.toml @@ -35,5 +35,6 @@ voice_choice = { optional = false, default = "", options = ["streamlabspolly", " aws_polly_voice = { optional = false, default = "Matthew", example = "Matthew", explanation = "The voice used for AWS Polly" } streamlabs_polly_voice = { optional = false, default = "Matthew", example = "Matthew", explanation = "The voice used for Streamlabs Polly" } tiktok_voice = { optional = false, default = "en_us_006", example = "en_us_006", explanation = "The voice used for TikTok TTS" } -python_voice = {optional = false, default = "1", example = "1", explanation = "The index of the system tts voices (can be downloaded externally, run ptt.py to find value, start from zero)"} -py_voice_num = {optional = false, default = "2", example = "2", explanation= "the number of system voices(2 are pre-installed in windows)"} +tiktok_sessionid = { optional = true, example = "c76bcc3a7625abcc27b508c7db457ff1", explanation = "The TikTok sessionId needed for the TTS API request. Check documentation if you don't know how to obtain it." } +python_voice = { optional = false, default = "1", example = "1", explanation = "The index of the system tts voices (can be downloaded externally, run ptt.py to find value, start from zero)" } +py_voice_num = { optional = false, default = "2", example = "2", explanation = "The number of system voices (2 are pre-installed in Windows)" } \ No newline at end of file