/v1/youtube/video
Video/Short Details
Get YouTube video or Short details, description cards, AI disclosures, owner/uploader identities, paid-promotion status and replay heatmaps. Age-restricted videos return 403. No hosted video downloads.
| Credit cost | Default: 1 credit How charges are determinedCost is decided per call, not per endpoint: the same operation can cost different amounts depending on what it returns. A call that fails costs 0 credits. A result served from cache costs 0 credits. `default` is the cost when no rule matches. Rules are evaluated in order and the first whose conditions all hold wins. A `when` condition is one of: `param` (the request parameter is true), `outcome` (the classifier's outcome), `empty` / `nonEmpty` (a response field is empty and absent, or a non-empty array or string), `flag` (a response field is exactly true). A cost of `{ perStartedMinute: n, of: [fields] }` is n x max(1, ceil(seconds / 60)), so even a short result bills at least one minute. |
|---|---|
| Cache support | Use a cached response this old or newer for 0 credits. If none is available, fetch live at the endpoint’s normal price. |
| Pagination | No explicit pagination metadata in the published contract. Consult the parameters and response fields below. |
Parameters
| Name | Location / required | Schema |
|---|---|---|
urlYouTube video or short URL | query / required |
|
languagePreferred two-letter response language, such as en, es, or fr. Sets Accept-Language; YouTube may ignore it. | query / optional |
|
cache_max_ageUse a cached response this old or newer for 0 credits. If none is available, fetch live at the endpoint’s normal price. | query / optional |
Allowed values |
Request examples
Replace placeholder values and supply your own API key. For operations with a request body, populate the body using the schema above.
cURL
curl --request GET 'https://api.fetchproof.com/v1/youtube/video?url=YOUR_URL' \
--header 'x-api-key: YOUR_API_KEY'JavaScript
const response = await fetch("https://api.fetchproof.com/v1/youtube/video?url=YOUR_URL", {
method: 'GET',
headers: { 'x-api-key': process.env.FETCHPROOF_API_KEY }
});
console.log(await response.text());Python
import os
import requests
response = requests.get("https://api.fetchproof.com/v1/youtube/video?url=YOUR_URL",
headers={"x-api-key": os.environ["FETCHPROOF_API_KEY"]})
print(response.text)Responses
200Success. Envelope: success / credits_remaining / credits_charged.
application/json
object
successrequired
boolean
credits_remainingrequired
integer
credits_chargedrequired
integer
idrequired
string
thumbnailrequired
string
urlrequired
string
publishDaterequired
string
typerequired
string
titlerequired
string
descriptionrequired
null
descriptionLinksrequired
array
commentCountTextrequired
string
commentCountIntrequired
integer
likeCountTextrequired
string
likeCountIntrequired
integer
viewCountTextrequired
string
viewCountIntrequired
integer
publishDateTextrequired
string
collaboratorsrequired
array
channelrequired
object
idrequired
string
urlrequired
string
handlerequired
string
titlerequired
string
chaptersrequired
array
watchNextVideosrequired
array
Array items
object
idrequired
string
titlerequired
string
thumbnailrequired
string
channelrequired
object
titlerequired
string
urlrequired
string
handlerequired
string
idrequired
string
publishedTimeTextrequired
string
publishedTimerequired
string
{
"format": "date-time"
}publishDateTextrequired
string
publishDaterequired
string
{
"format": "date-time"
}viewCountTextrequired
string
viewCountIntrequired
integer
lengthTextrequired
string
lengthInSecondsrequired
integer
videoUrlrequired
string
keywordsrequired
array
genrerequired
string
durationMsrequired
integer
durationFormattedrequired
string
isPaidPromotionrequired
boolean
descriptionCardsrequired
array
isMadeWithAIrequired
boolean
aiDisclosurerequired
string
ownerBylinerequired
object
channelIdrequired
string
namerequired
string
urlrequired
string
subscriberCountTextrequired
string
badgesrequired
array
uploaderrequired
object
channelIdrequired
string
authorrequired
string
urlrequired
string
most_replayedrequired
null
captionTracksrequired
array
Array items
object
baseUrlrequired
string
namerequired
object
simpleTextrequired
string
vssIdrequired
string
languageCoderequired
string
kindrequired
string
isTranslatablerequired
boolean
trackNamerequired
string
cachedoptional
boolean
cached_atoptional
string
{
"format": "date-time"
}