Как получить URL-адрес видео в TikTok nowatermark, если у меня есть идентификатор видео?
У меня есть функция для получения URL-адреса видео с водяными знаками из TikTok, но она больше не работает.
Как получить URL-адрес видео TikTok nowatermark, если у меня есть идентификатор видео?
def get_tiktok_video_nowatermark(url):
headers = {
"method": "GET",
"accept-encoding": "utf-8",
"User-Agent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36"
}
req = requests.get(url, headers=headers).text
video_data = json.loads(re.findall(u"<script id=\"__NEXT_DATA__\" type=\"application/json\" crossorigin=\"anonymous\">(.*?)</script><script crossorigin=\"anonymous\" nomodule=", req)[0])
watermark_url = video_data["props"]["pageProps"]["videoData"]["itemInfos"]["video"]["urls"][0]
watermark_video = str(requests.get(watermark_url, headers=headers).content)
position = int(re.search(r"vid:", watermark_video).start())
nowatermark_url = "https://api2.musical.ly/aweme/v1/playwm/?video_id=" + watermark_video[position+4:position+36]
return nowatermark_url
1 ответ
def get_tiktok_video_nowatermark(url):
headers = {
"method": "GET",
"accept-encoding": "utf-8",
"User-Agent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36"
}
req = requests.get(url, headers=headers).text
video_data = json.loads(re.findall(u"<script id=\"__NEXT_DATA__\" type=\"application/json\" crossorigin=\"anonymous\">(.*?)</script><script crossorigin=\"anonymous\" nomodule=", req)[0])
watermark_url = video_data["props"]["pageProps"]["videoData"]["itemInfos"]["video"]["urls"][0]
watermark_video = str(requests.get(watermark_url, headers=headers).content)
position = int(re.search(r"vid:", watermark_video).start())
nowatermark_url = "https://api.tiktokv.com/aweme/v1/play/?video_id=" + watermark_video[position+4:position+36] + "&vr_type=0&is_play_url=1&source=PackSourceEnum_PUBLISH&media_type=4&ratio=default&improve_bitrate=1"
return nowatermark_url
Кроме того, убедитесь, что вы запрашиваете nonwatermark_url
без заголовка пользовательского агента, иначе вы получите пустой результат. Лучше, если вы можете сделать запрос заголовка URL-адреса и определитьfinal url
которые можно передать прямо в браузер для воспроизведения или загрузки.