Transcript
curl --request GET \
--url https://api.sociavault.com/v1/scrape/tiktok/transcript \
--header 'X-API-Key: <api-key>'import requests
url = "https://api.sociavault.com/v1/scrape/tiktok/transcript"
headers = {"X-API-Key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'X-API-Key': '<api-key>'}};
fetch('https://api.sociavault.com/v1/scrape/tiktok/transcript', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.sociavault.com/v1/scrape/tiktok/transcript",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"X-API-Key: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.sociavault.com/v1/scrape/tiktok/transcript"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("X-API-Key", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.sociavault.com/v1/scrape/tiktok/transcript")
.header("X-API-Key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.sociavault.com/v1/scrape/tiktok/transcript")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["X-API-Key"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"success": true,
"data": {
"id": "7499229683859426602",
"url": "https://www.tiktok.com/@stoolpresidente/video/7499229683859426602",
"transcript": "WEBVTT\n\n\n00:00:00.120 --> 00:00:01.840\nAlright, pizza review time.\n\n00:00:01.841 --> 00:00:03.761\nSal's Pizza Factory. Oh,\n\n00:00:03.762 --> 00:00:05.721\nit's Fucking Corn. We're in Charlotte.\n\n00:00:05.722 --> 00:00:07.861\nAlright man, any chance I can get a real quick picture?\n\n00:00:07.920 --> 00:00:10.040\nShaq or Dwight Howard? I gotta pick one.\n\n00:00:10.041 --> 00:00:10.801\nYeah, Shaq.\n\n00:00:10.802 --> 00:00:12.161\nYeah, easy, right?\n\n00:00:12.162 --> 00:00:14.081\nWe're still Jason Williams still with us?\n\n00:00:14.082 --> 00:00:16.361\nYeah, he on the plane right over,\n\n00:00:16.362 --> 00:00:18.401\nout of the blue. Said the following.\n\n00:00:18.402 --> 00:00:21.121\nHe would take Dwight Howard over Shaq at center.\n\n00:00:21.122 --> 00:00:23.541\nAnd does he lie about it? For the rest of his life.\n\n00:00:23.560 --> 00:00:25.280\nAnd would never admit to saying that.\n\n00:00:25.281 --> 00:00:28.341\nListen, y'all seen him on his camera more more times than me.\n\n00:00:28.520 --> 00:00:32.040\nHe's lying. This is an outrageous pizza.\n\n00:00:32.041 --> 00:00:33.661\nI don't even know that they cut it.\n\n00:00:35.360 --> 00:00:36.580\nWow, very hot.\n\n00:00:36.600 --> 00:00:37.820\nAll right, it is cut.\n\n00:00:37.840 --> 00:00:39.920\nThat's a lava soup in the middle.\n\n00:00:39.921 --> 00:00:42.481\nIt is going back and forth like crazy.\n\n00:00:42.482 --> 00:00:45.321\nYou need some silverware. I really do want to let this cool\n\n00:00:45.322 --> 00:00:46.921\nso we can talk about you to White House.\n\n00:00:46.922 --> 00:00:48.081\nNo, it's shut.\n\n00:00:48.082 --> 00:00:49.521\nLook. Hahaha.\n\n00:00:49.522 --> 00:00:51.221\nAnd. But then he said if it.\n\n00:00:51.360 --> 00:00:53.540\nIf it. If he was starting five,\n\n00:00:53.600 --> 00:00:54.880\nyou would take Shaq. Yeah,\n\n00:00:54.881 --> 00:00:56.721\nbut Dwight Howard's the best center.\n\n00:00:56.722 --> 00:01:00.221\nShaq is the most dominant center ever to play the game of basketball.\n\n00:01:01.080 --> 00:01:02.400\nWhy would you take Drake out?\n\n00:01:02.401 --> 00:01:03.681\nUh, defensive purposes.\n\n00:01:03.682 --> 00:01:07.841\nSo you're like MAV GM. Get rid of Luka and get a defensive guy in there.\n\n00:01:07.842 --> 00:01:09.721\nListen, I'm nothing like Nico\n\n00:01:09.722 --> 00:01:11.401\nand I've never GM the team in my life.\n\n00:01:11.402 --> 00:01:12.601\nAnd I'm guarantee I'm better.\n\n00:01:12.602 --> 00:01:15.601\nI'd never make that deal that Was the dumbest deal ever to be made.\n\n00:01:15.602 --> 00:01:18.321\nThis tastes better than how sloppy it is.\n\n00:01:18.322 --> 00:01:19.841\n7 3. It's not bad at all,\n\n00:01:19.842 --> 00:01:20.641\nthis. Actually,\n\n00:01:20.880 --> 00:01:23.640\nI'm not just saying it. This eats way better than it looks.\n\n00:01:23.641 --> 00:01:24.761\nI don't know whether it is.\n\n00:01:24.762 --> 00:01:26.041\nHustle this out of the oven.\n\n00:01:26.042 --> 00:01:26.761\nAll right. Do you want some?\n\n00:01:26.762 --> 00:01:27.201\nNo, sir.\n\n00:01:27.202 --> 00:01:28.761\nAll right. I'm gonna burn the roof of my mouth.\n\n00:01:28.762 --> 00:01:29.995\nAlright, that's gonna be a problem.\n"
},
"credits_used": 1,
"endpoint": "tiktok/transcript"
}{
"error": "Missing required parameter: handle",
"endpoint": "<string>",
"credits_required": 123
}{
"error": "Invalid API key",
"docs": "https://docs.sociavault.com/authentication"
}{
"error": "Insufficient credits",
"required": 1,
"available": 0
}{
"error": "Service configuration error"
}TikTok
Transcript
Returns the transcript from a TikTok video. Enable the AI fallback option to generate a transcript when one is not natively available — note this costs 10 credits instead of 1.
Credit Cost: 1 credit (or 10 credits with AI fallback)
GET
/
v1
/
scrape
/
tiktok
/
transcript
Transcript
curl --request GET \
--url https://api.sociavault.com/v1/scrape/tiktok/transcript \
--header 'X-API-Key: <api-key>'import requests
url = "https://api.sociavault.com/v1/scrape/tiktok/transcript"
headers = {"X-API-Key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'X-API-Key': '<api-key>'}};
fetch('https://api.sociavault.com/v1/scrape/tiktok/transcript', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.sociavault.com/v1/scrape/tiktok/transcript",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"X-API-Key: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.sociavault.com/v1/scrape/tiktok/transcript"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("X-API-Key", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.sociavault.com/v1/scrape/tiktok/transcript")
.header("X-API-Key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.sociavault.com/v1/scrape/tiktok/transcript")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["X-API-Key"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"success": true,
"data": {
"id": "7499229683859426602",
"url": "https://www.tiktok.com/@stoolpresidente/video/7499229683859426602",
"transcript": "WEBVTT\n\n\n00:00:00.120 --> 00:00:01.840\nAlright, pizza review time.\n\n00:00:01.841 --> 00:00:03.761\nSal's Pizza Factory. Oh,\n\n00:00:03.762 --> 00:00:05.721\nit's Fucking Corn. We're in Charlotte.\n\n00:00:05.722 --> 00:00:07.861\nAlright man, any chance I can get a real quick picture?\n\n00:00:07.920 --> 00:00:10.040\nShaq or Dwight Howard? I gotta pick one.\n\n00:00:10.041 --> 00:00:10.801\nYeah, Shaq.\n\n00:00:10.802 --> 00:00:12.161\nYeah, easy, right?\n\n00:00:12.162 --> 00:00:14.081\nWe're still Jason Williams still with us?\n\n00:00:14.082 --> 00:00:16.361\nYeah, he on the plane right over,\n\n00:00:16.362 --> 00:00:18.401\nout of the blue. Said the following.\n\n00:00:18.402 --> 00:00:21.121\nHe would take Dwight Howard over Shaq at center.\n\n00:00:21.122 --> 00:00:23.541\nAnd does he lie about it? For the rest of his life.\n\n00:00:23.560 --> 00:00:25.280\nAnd would never admit to saying that.\n\n00:00:25.281 --> 00:00:28.341\nListen, y'all seen him on his camera more more times than me.\n\n00:00:28.520 --> 00:00:32.040\nHe's lying. This is an outrageous pizza.\n\n00:00:32.041 --> 00:00:33.661\nI don't even know that they cut it.\n\n00:00:35.360 --> 00:00:36.580\nWow, very hot.\n\n00:00:36.600 --> 00:00:37.820\nAll right, it is cut.\n\n00:00:37.840 --> 00:00:39.920\nThat's a lava soup in the middle.\n\n00:00:39.921 --> 00:00:42.481\nIt is going back and forth like crazy.\n\n00:00:42.482 --> 00:00:45.321\nYou need some silverware. I really do want to let this cool\n\n00:00:45.322 --> 00:00:46.921\nso we can talk about you to White House.\n\n00:00:46.922 --> 00:00:48.081\nNo, it's shut.\n\n00:00:48.082 --> 00:00:49.521\nLook. Hahaha.\n\n00:00:49.522 --> 00:00:51.221\nAnd. But then he said if it.\n\n00:00:51.360 --> 00:00:53.540\nIf it. If he was starting five,\n\n00:00:53.600 --> 00:00:54.880\nyou would take Shaq. Yeah,\n\n00:00:54.881 --> 00:00:56.721\nbut Dwight Howard's the best center.\n\n00:00:56.722 --> 00:01:00.221\nShaq is the most dominant center ever to play the game of basketball.\n\n00:01:01.080 --> 00:01:02.400\nWhy would you take Drake out?\n\n00:01:02.401 --> 00:01:03.681\nUh, defensive purposes.\n\n00:01:03.682 --> 00:01:07.841\nSo you're like MAV GM. Get rid of Luka and get a defensive guy in there.\n\n00:01:07.842 --> 00:01:09.721\nListen, I'm nothing like Nico\n\n00:01:09.722 --> 00:01:11.401\nand I've never GM the team in my life.\n\n00:01:11.402 --> 00:01:12.601\nAnd I'm guarantee I'm better.\n\n00:01:12.602 --> 00:01:15.601\nI'd never make that deal that Was the dumbest deal ever to be made.\n\n00:01:15.602 --> 00:01:18.321\nThis tastes better than how sloppy it is.\n\n00:01:18.322 --> 00:01:19.841\n7 3. It's not bad at all,\n\n00:01:19.842 --> 00:01:20.641\nthis. Actually,\n\n00:01:20.880 --> 00:01:23.640\nI'm not just saying it. This eats way better than it looks.\n\n00:01:23.641 --> 00:01:24.761\nI don't know whether it is.\n\n00:01:24.762 --> 00:01:26.041\nHustle this out of the oven.\n\n00:01:26.042 --> 00:01:26.761\nAll right. Do you want some?\n\n00:01:26.762 --> 00:01:27.201\nNo, sir.\n\n00:01:27.202 --> 00:01:28.761\nAll right. I'm gonna burn the roof of my mouth.\n\n00:01:28.762 --> 00:01:29.995\nAlright, that's gonna be a problem.\n"
},
"credits_used": 1,
"endpoint": "tiktok/transcript"
}{
"error": "Missing required parameter: handle",
"endpoint": "<string>",
"credits_required": 123
}{
"error": "Invalid API key",
"docs": "https://docs.sociavault.com/authentication"
}{
"error": "Insufficient credits",
"required": 1,
"available": 0
}{
"error": "Service configuration error"
}💳 1 credit per request
Authorizations
Query Parameters
TikTok video URL
Example:
"https://www.tiktok.com/@stoolpresidente/video/7499229683859426602"
Language of the transcript. 2 letter language code, ie 'en', 'es', 'fr', 'de', 'it', 'ja', 'ko', 'zh'
Example:
"en"
Set to 'true' to use AI as a fallback to get the transcript if the transcript is not found. Adds 10 credits to the base cost.
Example:
false
Response
Successful response
⌘I