Help make Supadata better.

Tell us how we could make the product more useful to you.

Need help? Use the chat button in the corner to contact us.

Legal/compliance question — data extraction methods for YouTube, TikTok, Instagram, and X

Hi, I have a compliance question about how Supadata's transcript/metadata feature works across the platforms you support, specifically around copyright and each platform's terms of service. As I understand it, at least for YouTube, the flow is: fetch/download the audio from a video, transcribe it, and return the transcript via the API. I'd like to understand the legal basis for this across YouTube, TikTok, Instagram, and X, since I imagine the underlying method differs by platform. Could you break out the following for each of the four platforms separately? Extraction method per platform: For each of YouTube, TikTok, Instagram, and X, does Supadata retrieve transcripts/metadata by downloading and transcribing audio/video content directly, by using each platform's official API (e.g., YouTube Data API, Instagram Graph API, TikTok API, X API), by using officially-provided captions where they exist, or by some other means? Please specify per platform, since the answer may not be the same across all four. Reproduction of copyrighted content: Where audio/video is downloaded and copied (even temporarily) to produce a transcript, that involves making a copy of copyrighted content. A video being publicly viewable on a platform grants a license to view/stream it through that platform's own interface — it doesn't automatically grant a license to download or copy the underlying media file. Has Supadata obtained a legal opinion on whether this is a permissible reproduction under copyright law (e.g., under a fair use or similar analysis) for each platform where this applies? This is a copyright question independent of whether anyone has signed an agreement with the platform, since copyright protection doesn't depend on a contract. Platform-specific ToS restrictions on automated access: YouTube: The Terms of Service prohibit accessing the Service "using automated means (such as robots, botnets, or scrapers)," with an exception only for public search engines following robots.txt or with YouTube's prior written permission — implying the base rule already covers automated access to public, logged-out content. The YouTube API Services Developer Policies separately prohibit scraping YouTube data/content and prohibit using any technology other than YouTube API Services to access YouTube audiovisual content. Instagram: Meta's Terms of Use prohibit accessing or collecting data "using automated means" without prior permission. TikTok: TikTok's Terms of Service prohibit scraping, crawling, exporting, or extracting data or content "using any automated system or software... except as approved in writing by TikTok." X: X's current terms prohibit crawling or scraping "in any form, for any purpose" without prior written consent, and include a liquidated-damages clause for unauthorized bulk access. For each platform where Supadata's method isn't going through the official API, what's the basis for operating outside these restrictions? Indemnification: If a customer's use of this data were challenged on copyright or ToS grounds for any of these four platforms, does Supadata's customer agreement provide indemnification covering how the underlying data was sourced (as opposed to how the customer uses the API)? We're evaluating whether to build further on this API across multiple platforms and need a clear, platform-by-platform answer before doing so. Thanks

Image

kimdongkudavid 1 day ago

Consistent duplicated lines in transcripts

Hi, I’m evaluating your API and am finding duplicated transcript lines pretty consistently, sometimes transcribed differently. It seems the repeat might be happening in the input to the transcription model maybe? Examples: “(…) i was surprised too now the most fun part cleaning the mint same oil fresh mint leaves straight in the smell hit the entire room instantly then chili heat the entire room instantly then chili garlic everything back in i heat two minutes (…)” this example also has low quality sentence structuring “(…) Now our sauce is just equal parts sugar and my dear mum fish sauce, a tablespoon of minced garlic, a splash of water, some chopped Thai chilies to burn your booty hole, Tie chilies to burn your booty hole and lime juice. (…)” “(…) Let's start by browning a whole garlic bulb, then add a kilo of pork, mix that around, then 4 tablespoons of vinegar, 2 tablespoons soy sauce, peppercorns, pepper, 1 bay leaf, of vinegar, two tablespoons soy sauce, peppercorns, pepper, one bay leaf, general salt. (..)”

Image

loic.hovon 16 days ago

1

Completed

Instagram /metadata returns 404 not-found for public Reels while /transcript succeeds

Hi Supadata team, I’m seeing consistent failures from the /v1/metadata endpoint for public Instagram Reels, even though /v1/transcript succeeds for the same URLs. Example URL: https://www.instagram.com/reel/DXvEhVWNeKI/ Metadata request: GET https://api.supadata.ai/v1/metadata?url=https%3A%2F%2Fwww.instagram.com%2Freel%2FDXvEhVWNeKI%2F x-api-key: Metadata response: { "error": "not-found", "message": "Not Found", "details": "Post not found or is private", "documentationUrl": "https://docs.supadata.ai/errors/not-found" } Transcript request for the same URL succeeds: GET https://api.supadata.ai/v1/transcript?url=https%3A%2F%2Fwww.instagram.com%2Freel%2FDXvEhVWNeKI%2F&text=true x-api-key: That returns a valid transcript. I also confirmed the Reel appears public: Instagram oEmbed returns 200 The public Instagram page loads Supadata transcript succeeds I tested several URL variants and they all produce the same metadata failure: https://www.instagram.com/reel/DXvEhVWNeKI/ https://www.instagram.com/reel/DXvEhVWNeKI https://instagram.com/reel/DXvEhVWNeKI/ https://m.instagram.com/reel/DXvEhVWNeKI/ https://www.instagram.com/reel/DXvEhVWNeKI/?igsh=... I also tested 30+ other Instagram Reel/post URLs and saw the same /metadata 404 behavior, while TikTok and YouTube metadata work correctly with the same API key. Expected behavior: /v1/metadata should return Instagram metadata, including media.thumbnailUrl when available, for public Reels. Could you confirm whether Instagram metadata is currently degraded, unsupported for some Reels/accounts, or requires a different request format than the documented /metadata?url= call?

Image

logan.howell about 2 months ago

3

Completed

Still getting "limit exceeded" on every request but I have 700+ credits left

I'm on the Pro plan and my dashboard says I've used 2,272 of 3,000 credits, so I should have around 728 left (resets 06/24). But right now every single request comes back with "limit-exceeded — Plan usage limit was exceeded." The weird part is it happens even on one single request after waiting a few minutes with nothing else running. I asked support and they said the Pro limit is 10 requests/second, but I'm nowhere near that, and even one isolated call fails — so it doesn't feel like a rate limit. So I'm confused about what's actually being hit. Is the credits-remaining number on the dashboard maybe not live, and I've actually used them all? Or is there some daily cap or temporary lockout that isn't shown on the billing page? I just want to use the credits I have left before they reset. Anyone run into this where it says limit exceeded but you still clearly have credits?

Image

liad142 about 2 months ago

1

Completed

Error 400 and depreciated YouTube video gettranscript.

I see you have now depreciated the single use GetTranscript and it is indeed failing with 400 errors on my site. https://docs.supadata.ai/api-reference/endpoint/youtube/video-get This was working fine for two months and the reason I purchased a yearly sub. Before I migrate to your batch downloading of transcripts is that depreciated too? How do you notify live production sites when you remove functionality they utilize? Please advise if this is superseded with another function. I can only find batch. Snippet: ## Documentation Index Fetch the complete documentation index at: https://docs.supadata.ai/llms.txt Use this file to discover all available pages before exploring further. # Transcript Get transcript from YouTube video in various formats and languages. If the lang parameter is not provided or the transcript is not available in the requested language, the API defaults to the first available language. ## OpenAPI ````yaml v1-openapi GET /youtube/transcript openapi: 3.1.0 info: title: Supadata description: Web & Social Media Content API for Developers version: 1.3.0 servers: - url: https://api.supadata.ai/v1 security: - apiKeyAuth: [] paths: /youtube/transcript: get: description: >- Get transcript from YouTube video in various formats and languages. -

Image

supadata.ai 3 months ago

1

Bug: Metadata.__init__() missing required url argument when calling supadata_client.metadata()

When calling supadata_client.metadata(url=tiktok_url), the SDK throws a TypeError instead of returning the metadata object. I am trying to just get the video description from a tiktok. Error TypeError: Metadata.__init__() missing 1 required positional argument: 'url' Steps to Reproduce python from supadata import Supadata client = Supadata(api_key="your_api_key") metadata = client.metadata(url="https://www.tiktok.com/@user/video/123456") Expected Behaviour A Metadata object is returned containing the video metadata including description,title, author etc. Actual Behaviour The API call succeeds and returns a response, but the SDK fails to construct the Metadata object because the url field is missing from the response, causing a TypeError. Workaround Currently bypassing the SDK and calling the API directly: (python) import requests response = requests.get( "https://api.supadata.ai/v1/tiktok/metadata", params={"url": tiktok_url}, headers={"x-api-key": "your_api_key"} ) data = response.json() Environment Python version: 3.12 Supadata SDK version: 1.6.0 OS: macOS

Image

franklatank01 3 months ago

Completed

Failed requests 5/19 to present

Title: /v1/youtube/channel/videos returns empty videoIds for all channels since ~May 19, 2026 Body: Since approximately May 19, my production app stopped receiving new videos from this endpoint. Every channel I query — including major channels with daily uploads — returns: {"videoIds":[],"shortIds":[],"liveIds":[]} Reproduced with these channels (all have many recent uploads): 20VC: https://www.youtube.com/@20VC (also tried as channel URL) MKBHD: UCBJycsmduvYEL83R_U4JriQ BBC News: UC16niRr50-MSBwiO3YDb3RA Requests return HTTP 200 with no error. The /v1/youtube/transcript endpoint works normally for direct video URLs, so it's specific to channel-videos. My API key is active and has credits. Could someone investigate? My production ingest pipeline has been silent for 48+ hours.

Image

nick 3 months ago

1

Completed

Intermittent partial response from /v1/metadata for Instagram Reels: author present but media.thumbnailUrl and author.avatarUrl missing

For Instagram Reel URLs, the GET /v1/metadata endpoint intermittently returns a response that includes the author display name but omits the thumbnail and the author avatar. The same URL returns a complete response on most requests, so this appears to be a transient server-side issue rather than missing data for the post. Endpoint: GET https://api.supadata.ai/v1/metadata?url= Example URL that reproduces it: https://www.instagram.com/reel/DXzqhy6pfR-/ Reproduction and frequency: At roughly 2.5 requests/sec: ~1 in 6 requests returned the partial response. Spaced 2 seconds apart, which is within a 1 request/sec plan limit: still ~2 in 8 requests returned the partial response. Because it reproduces with 2 second spacing on a 1 req/sec plan, this is not a rate-limit effect. It is an intermittent server-side issue on the same URL. Expected response (majority of requests): author.displayName present author.avatarUrl present media.thumbnailUrl present Actual response (intermittent, ~20 to 25% of requests for the same URL): author.displayName present author.avatarUrl missing or empty media.thumbnailUrl missing or empty Questions: Under what conditions can /v1/metadata return author.displayName without media.thumbnailUrl / author.avatarUrl for a post that does have them? Is there a field or status in the response we should check to detect an incomplete result, rather than treating any 200 as complete? Is there a recommended retry or backoff approach, or a parameter to force a fully resolved response?

Image

janhoff2000 3 months ago

1