B2B Social Video Transcripts
b2b_social_video_transcriptsTranscribe public TikTok, Instagram Reels, Facebook Reels, X, Threads, podcast, and Wistia videos, then extract pain points, buying signals, competitor mentions, and icebreakers with timestamps.
Instructions
Get transcripts of public TikTok, Instagram Reels, Facebook Reels, X, Threads, podcast, and Wistia videos, and in outbound mode pull pain points, buying signals, competitor mentions, and icebreakers with timestamps. Speech-to-text and AI calls run on the buyer's own API keys.
Tool call template
This tool declares no required parameters. Add optional parameters from the input schema as needed.
{
"id": 1,
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"arguments": {},
"name": "b2b_social_video_transcripts"
}
}Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| mode | No | transcript (default): transcript, caption, creator, and counts for each video given. outbound: the same plus pain points, buying signals, competitor mentions, and icebreakers on your AI key. watch_list: checks creators, podcast feeds, podcast keywords, and Threads hashtags for videos earlier runs have not seen, and transcribes only those. | |
| ai_model | No | Optional override. Defaults: gpt-4.1-mini (openai), claude-haiku-4-5 (anthropic), gemini-2.5-flash (gemini). | |
| creators | No | watch_list mode: profile URLs or platform:handle, for example instagram:hubspot, x:gong_io, facebook:HubSpot, threads:hubspot. TikTok has no creator feed without a login, so TikTok creators are refused with a free row. | |
| hashtags | No | watch_list mode: Threads hashtags, without #. Hashtag pages on TikTok, Instagram, X, and Facebook need a login or do not list newest first, so only Threads is read. | |
| stt_model | No | Optional. With openai the default is gpt-4o-mini-transcribe in transcript mode and whisper-1 when timestamps are needed (outbound mode or include_segments yes), because only whisper-1 returns timestamps among OpenAI models. | |
| ai_api_key | No | Your own key for the AI provider. Without it, outbound mode returns transcripts only and charges no outbound-insights. Never stored or logged. | |
| my_company | No | Your company name, so pain points and icebreakers fit your offer. | |
| my_product | No | What you sell, in one line. | |
| since_days | No | Skips videos older than this many days. Default 30. | |
| video_urls | No | TikTok video, Instagram reel, Facebook reel, X post, Threads post, podcast episode or RSS feed, Wistia page, or YouTube video URLs. A podcast feed URL reads its latest episodes, up to max_videos_per_creator. | |
| wistia_ids | No | Wistia media IDs, or company page URLs that embed Wistia videos; the page is scanned for embedded media IDs. | |
| ai_provider | No | openai (default), anthropic, or gemini. Used by outbound mode and for translation. | |
| competitors | No | Brand names to flag when spoken. Each is matched exactly in the transcript and by the AI call. | |
| stt_api_key | No | Your own key for the provider above. Without a key, only videos with native subtitles or transcripts are transcribed; the rest return a free no_speech_track row. Never stored or logged. | |
| webhook_url | No | Optional. Each new video row with buying_signal_score at or above webhook_min_score is sent here as a POST with a Slack compatible text field. | |
| stt_provider | No | openai (default), groq, deepgram, or assemblyai. Used for videos with no native subtitle or transcript. | |
| topic_filter | No | Keywords. A video whose caption, hashtags, and title match none of them is skipped before any speech-to-text call, as a free skipped_off_topic row. | |
| podcast_feeds | No | Podcast RSS feed URLs. In watch_list mode each feed is watched for new episodes; in the other modes the latest episodes are read. | |
| max_charge_usd | No | Optional. The run stops before a charge that would pass this amount. Summary rows are always returned. | |
| watch_list_name | No | Names the stored watch list. Rows are also appended to a named dataset b2b-social-video-transcripts-<name>, and seen video IDs are kept in a named key-value store b2b-social-video-transcripts-<name>-state. Letters, numbers, and dashes; up to 28 characters. Default default. | |
| include_segments | No | yes or no (default no). Adds transcript_segments to each row. Outbound mode always fills them when the source gives timestamps. | |
| podcast_keywords | No | watch_list mode: search terms for finding podcast feeds through the iTunes search API; each feed found is watched. | |
| watch_list_depth | No | transcript (default) or outbound: what runs on each new video in watch_list mode. | |
| transcript_filter | No | Keywords matched against the spoken words. Rows are kept, with transcript_match true or false. | |
| webhook_min_score | No | 0 to 100. Default 0 sends every video row. | |
| include_commenters | No | yes or no (default no). On TikTok videos at or above webhook_min_score, adds one row per commenter: handle, name, profile URL, comment, time, likes. | |
| stt_fallback_api_key | No | Your own key for the fallback provider. | |
| translate_to_english | No | yes or no. Default yes in outbound mode, no in the other modes. Needs the AI key. | |
| stt_fallback_provider | No | Optional second provider, tried when the first refuses or fails. | |
| max_videos_per_creator | No | Most videos read per creator, feed, keyword result, or hashtag in one run. Default 10, up to 100. | |
| youtube_transcript_api_key | No | Your own key for the YouTube transcript provider above. Without it, YouTube URLs return a free row. | |
| youtube_transcript_provider | No | scrapecreators, searchapi, or supadata. YouTube videos are transcribed only through your own key with one of these services. | |
| youtube_transcript_fallback_api_key | No | Your own key for the fallback YouTube provider. | |
| youtube_transcript_fallback_provider | No | Optional second YouTube transcript provider. |