2040 lines
74 KiB
HTML
2040 lines
74 KiB
HTML
<!DOCTYPE html>
|
||
<html lang="en" class="js-focus-visible js" data-js-focus-visible=""><head>
|
||
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
|
||
|
||
<meta charset="utf-8">
|
||
<meta name="viewport" content="width=device-width,initial-scale=1">
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<link rel="icon" href="https://docs.hottubapp.io/assets/favicon.png">
|
||
<meta name="generator" content="mkdocs-1.6.1, mkdocs-material-9.6.22">
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<link rel="stylesheet" href="%F0%9F%8E%AC%20Videos%20-%20Hot%20Tub%20Docs_files/main.84d31ad4.min.css">
|
||
|
||
|
||
<link rel="stylesheet" href="%F0%9F%8E%AC%20Videos%20-%20Hot%20Tub%20Docs_files/palette.06af60db.min.css">
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<link rel="preconnect" href="https://fonts.gstatic.com/" crossorigin="">
|
||
<link rel="stylesheet" href="%F0%9F%8E%AC%20Videos%20-%20Hot%20Tub%20Docs_files/css.css">
|
||
<style>:root{--md-text-font:"Montserrat";--md-code-font:"Roboto Mono"}</style>
|
||
|
||
|
||
|
||
<link rel="stylesheet" href="%F0%9F%8E%AC%20Videos%20-%20Hot%20Tub%20Docs_files/extra.css">
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<script id="__analytics">function __md_analytics(){function e(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],e("js",new Date),e("config","G-FKHVJYKHGB"),document.addEventListener("DOMContentLoaded",(function(){document.forms.search&&document.forms.search.query.addEventListener("blur",(function(){this.value&&e("event","search",{search_term:this.value})}));document$.subscribe((function(){var t=document.forms.feedback;if(void 0!==t)for(var a of t.querySelectorAll("[type=submit]"))a.addEventListener("click",(function(a){a.preventDefault();var n=document.location.pathname,d=this.getAttribute("data-md-value");e("event","feedback",{page:n,data:d}),t.firstElementChild.disabled=!0;var r=t.querySelector(".md-feedback__note [data-md-value='"+d+"']");r&&(r.hidden=!1)})),t.hidden=!1})),location$.subscribe((function(t){e("config","G-FKHVJYKHGB",{page_path:t.pathname})}))}));var t=document.createElement("script");t.async=!0,t.src="https://www.googletagmanager.com/gtag/js?id=G-FKHVJYKHGB",document.getElementById("__analytics").insertAdjacentElement("afterEnd",t)}</script>
|
||
|
||
<script>"undefined"!=typeof __md_analytics&&__md_analytics()</script>
|
||
|
||
|
||
|
||
|
||
|
||
<meta name="theme-color" content="#14151a"><meta name="color-scheme" content="dark"><script>__md_scope=new URL("../../..",location),__md_hash=e=>[...e].reduce(((e,_)=>(e<<5)-e+_.charCodeAt(0)),0),__md_get=(e,_=localStorage,t=__md_scope)=>JSON.parse(_.getItem(t.pathname+"."+e)),__md_set=(e,_,t=localStorage,a=__md_scope)=>{try{t.setItem(a.pathname+"."+e,JSON.stringify(_))}catch(e){}}</script><link rel="canonical" href="https://docs.hottubapp.io/developers/api/videos/"><link rel="prev" href="https://docs.hottubapp.io/developers/api/status/"><link rel="next" href="https://docs.hottubapp.io/developers/api/uploaders/"><title>🎬 Videos - Hot Tub Docs</title></head>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<body dir="ltr" data-md-color-scheme="slate" data-md-color-primary="black" data-md-color-accent="indigo" data-md-color-media="(prefers-color-scheme: dark)"><div id="bubble-background" style="position: fixed; top: 0px; left: 0px; width: 100%; height: 100%; z-index: -1;"><canvas style="position: fixed; top: 0px; left: 0px; width: 100%; height: 100%; z-index: -1; pointer-events: none;" width="1366" height="616"></canvas></div>
|
||
|
||
|
||
<input class="md-toggle" data-md-toggle="drawer" type="checkbox" id="__drawer" autocomplete="off">
|
||
<input class="md-toggle" data-md-toggle="search" type="checkbox" id="__search" autocomplete="off">
|
||
<label class="md-overlay" for="__drawer"></label>
|
||
<div data-md-component="skip">
|
||
|
||
|
||
<a href="https://docs.hottubapp.io/developers/api/videos/#overview" class="md-skip">
|
||
Skip to content
|
||
</a>
|
||
|
||
</div>
|
||
<div data-md-component="announce">
|
||
|
||
</div>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<header class="md-header md-header--shadow" data-md-component="header">
|
||
<nav class="md-header__inner md-grid" aria-label="Header">
|
||
<a href="https://docs.hottubapp.io/" title="Hot Tub Docs" class="md-header__button md-logo" aria-label="Hot Tub Docs" data-md-component="logo">
|
||
|
||
<img src="%F0%9F%8E%AC%20Videos%20-%20Hot%20Tub%20Docs_files/icon-round.png" alt="logo">
|
||
|
||
</a>
|
||
<label class="md-header__button md-icon" for="__drawer">
|
||
|
||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M3 6h18v2H3zm0 5h18v2H3zm0 5h18v2H3z"></path></svg>
|
||
</label>
|
||
<div class="md-header__title" data-md-component="header-title">
|
||
<div class="md-header__ellipsis">
|
||
<div class="md-header__topic">
|
||
<span class="md-ellipsis">
|
||
Hot Tub Docs
|
||
</span>
|
||
</div>
|
||
<div class="md-header__topic" data-md-component="header-topic">
|
||
<span class="md-ellipsis">
|
||
|
||
🎬 Videos
|
||
|
||
</span>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
|
||
<form class="md-header__option" data-md-component="palette">
|
||
|
||
|
||
|
||
|
||
<input class="md-option" data-md-color-media="(prefers-color-scheme: light)" data-md-color-scheme="default" data-md-color-primary="white" data-md-color-accent="white" aria-label="Switch to dark mode" type="radio" name="__palette" id="__palette_0">
|
||
|
||
<label class="md-header__button md-icon" title="Switch to dark mode" for="__palette_1" hidden="">
|
||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M12 8a4 4 0 0 0-4 4 4 4 0 0 0 4 4 4 4 0 0 0 4-4 4 4 0 0 0-4-4m0 10a6 6 0 0 1-6-6 6 6 0 0 1 6-6 6 6 0 0 1 6 6 6 6 0 0 1-6 6m8-9.31V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20v-4.69L23.31 12z"></path></svg>
|
||
</label>
|
||
|
||
|
||
|
||
|
||
|
||
<input class="md-option" data-md-color-media="(prefers-color-scheme: dark)" data-md-color-scheme="slate" data-md-color-primary="black" data-md-color-accent="indigo" aria-label="Switch to light mode" type="radio" name="__palette" id="__palette_1">
|
||
|
||
<label class="md-header__button md-icon" title="Switch to light mode" for="__palette_0">
|
||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M12 18c-.89 0-1.74-.2-2.5-.55C11.56 16.5 13 14.42 13 12s-1.44-4.5-3.5-5.45C10.26 6.2 11.11 6 12 6a6 6 0 0 1 6 6 6 6 0 0 1-6 6m8-9.31V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20v-4.69L23.31 12z"></path></svg>
|
||
</label>
|
||
|
||
|
||
</form>
|
||
|
||
|
||
|
||
<script>var palette=__md_get("__palette");if(palette&&palette.color){if("(prefers-color-scheme)"===palette.color.media){var media=matchMedia("(prefers-color-scheme: light)"),input=document.querySelector(media.matches?"[data-md-color-media='(prefers-color-scheme: light)']":"[data-md-color-media='(prefers-color-scheme: dark)']");palette.color.media=input.getAttribute("data-md-color-media"),palette.color.scheme=input.getAttribute("data-md-color-scheme"),palette.color.primary=input.getAttribute("data-md-color-primary"),palette.color.accent=input.getAttribute("data-md-color-accent")}for(var[key,value]of Object.entries(palette.color))document.body.setAttribute("data-md-color-"+key,value)}</script>
|
||
|
||
|
||
<div class="md-header__option">
|
||
<div class="md-select">
|
||
|
||
<button class="md-header__button md-icon" aria-label="Select language">
|
||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="m12.87 15.07-2.54-2.51.03-.03A17.5 17.5 0 0 0 14.07 6H17V4h-7V2H8v2H1v2h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2zm-2.62 7 1.62-4.33L19.12 17z"></path></svg>
|
||
</button>
|
||
<div class="md-select__inner">
|
||
<ul class="md-select__list">
|
||
|
||
<li class="md-select__item">
|
||
<a href="" hreflang="en" class="md-select__link">
|
||
English
|
||
</a>
|
||
</li>
|
||
|
||
<li class="md-select__item">
|
||
<a href="https://docs-hottubapp-io.translate.goog/?_x_tr_sl=en&_x_tr_tl=fr" hreflang="fr" class="md-select__link">
|
||
French
|
||
</a>
|
||
</li>
|
||
|
||
<li class="md-select__item">
|
||
<a href="https://docs-hottubapp-io.translate.goog/?_x_tr_sl=en&_x_tr_tl=de" hreflang="de" class="md-select__link">
|
||
German
|
||
</a>
|
||
</li>
|
||
|
||
<li class="md-select__item">
|
||
<a href="https://docs-hottubapp-io.translate.goog/?_x_tr_sl=en&_x_tr_tl=es" hreflang="es" class="md-select__link">
|
||
Spanish
|
||
</a>
|
||
</li>
|
||
|
||
<li class="md-select__item">
|
||
<a href="https://docs-hottubapp-io.translate.goog/?_x_tr_sl=en&_x_tr_tl=it" hreflang="it" class="md-select__link">
|
||
Italian
|
||
</a>
|
||
</li>
|
||
|
||
<li class="md-select__item">
|
||
<a href="https://docs-hottubapp-io.translate.goog/?_x_tr_sl=en&_x_tr_tl=nl" hreflang="nl" class="md-select__link">
|
||
Dutch
|
||
</a>
|
||
</li>
|
||
|
||
<li class="md-select__item">
|
||
<a href="https://docs-hottubapp-io.translate.goog/?_x_tr_sl=en&_x_tr_tl=pt" hreflang="pt" class="md-select__link">
|
||
Portuguese
|
||
</a>
|
||
</li>
|
||
|
||
<li class="md-select__item">
|
||
<a href="https://docs-hottubapp-io.translate.goog/?_x_tr_sl=en&_x_tr_tl=pl" hreflang="pl" class="md-select__link">
|
||
Polish
|
||
</a>
|
||
</li>
|
||
|
||
<li class="md-select__item">
|
||
<a href="https://docs-hottubapp-io.translate.goog/?_x_tr_sl=en&_x_tr_tl=tr" hreflang="tr" class="md-select__link">
|
||
Turkish
|
||
</a>
|
||
</li>
|
||
|
||
<li class="md-select__item">
|
||
<a href="https://docs-hottubapp-io.translate.goog/?_x_tr_sl=en&_x_tr_tl=zh" hreflang="zh" class="md-select__link">
|
||
Chinese
|
||
</a>
|
||
</li>
|
||
|
||
<li class="md-select__item">
|
||
<a href="https://docs-hottubapp-io.translate.goog/?_x_tr_sl=en&_x_tr_tl=ja" hreflang="ja" class="md-select__link">
|
||
Japanese
|
||
</a>
|
||
</li>
|
||
|
||
<li class="md-select__item">
|
||
<a href="https://docs-hottubapp-io.translate.goog/?_x_tr_sl=en&_x_tr_tl=de" hreflang="at" class="md-select__link">
|
||
Austrian
|
||
</a>
|
||
</li>
|
||
|
||
<li class="md-select__item">
|
||
<a href="https://docs-hottubapp-io.translate.goog/?_x_tr_sl=en&_x_tr_tl=nl" hreflang="be" class="md-select__link">
|
||
Belgian
|
||
</a>
|
||
</li>
|
||
|
||
<li class="md-select__item">
|
||
<a href="https://docs-hottubapp-io.translate.goog/?_x_tr_sl=en&_x_tr_tl=bg" hreflang="bg" class="md-select__link">
|
||
Bulgarian
|
||
</a>
|
||
</li>
|
||
|
||
<li class="md-select__item">
|
||
<a href="https://docs-hottubapp-io.translate.goog/?_x_tr_sl=en&_x_tr_tl=hr" hreflang="hr" class="md-select__link">
|
||
Croatian
|
||
</a>
|
||
</li>
|
||
|
||
<li class="md-select__item">
|
||
<a href="https://docs-hottubapp-io.translate.goog/?_x_tr_sl=en&_x_tr_tl=el" hreflang="cy" class="md-select__link">
|
||
Cypriot
|
||
</a>
|
||
</li>
|
||
|
||
<li class="md-select__item">
|
||
<a href="https://docs-hottubapp-io.translate.goog/?_x_tr_sl=en&_x_tr_tl=cs" hreflang="cs" class="md-select__link">
|
||
Czech
|
||
</a>
|
||
</li>
|
||
|
||
<li class="md-select__item">
|
||
<a href="https://docs-hottubapp-io.translate.goog/?_x_tr_sl=en&_x_tr_tl=da" hreflang="da" class="md-select__link">
|
||
Danish
|
||
</a>
|
||
</li>
|
||
|
||
<li class="md-select__item">
|
||
<a href="https://docs-hottubapp-io.translate.goog/?_x_tr_sl=en&_x_tr_tl=et" hreflang="et" class="md-select__link">
|
||
Estonian
|
||
</a>
|
||
</li>
|
||
|
||
<li class="md-select__item">
|
||
<a href="https://docs-hottubapp-io.translate.goog/?_x_tr_sl=en&_x_tr_tl=fi" hreflang="fi" class="md-select__link">
|
||
Finnish
|
||
</a>
|
||
</li>
|
||
|
||
<li class="md-select__item">
|
||
<a href="https://docs-hottubapp-io.translate.goog/?_x_tr_sl=en&_x_tr_tl=el" hreflang="el" class="md-select__link">
|
||
Greek
|
||
</a>
|
||
</li>
|
||
|
||
<li class="md-select__item">
|
||
<a href="https://docs-hottubapp-io.translate.goog/?_x_tr_sl=en&_x_tr_tl=hu" hreflang="hu" class="md-select__link">
|
||
Hungarian
|
||
</a>
|
||
</li>
|
||
|
||
<li class="md-select__item">
|
||
<a href="https://docs-hottubapp-io.translate.goog/?_x_tr_sl=en&_x_tr_tl=ga" hreflang="ga" class="md-select__link">
|
||
Irish
|
||
</a>
|
||
</li>
|
||
|
||
<li class="md-select__item">
|
||
<a href="https://docs-hottubapp-io.translate.goog/?_x_tr_sl=en&_x_tr_tl=lv" hreflang="lv" class="md-select__link">
|
||
Latvian
|
||
</a>
|
||
</li>
|
||
|
||
<li class="md-select__item">
|
||
<a href="https://docs-hottubapp-io.translate.goog/?_x_tr_sl=en&_x_tr_tl=lt" hreflang="lt" class="md-select__link">
|
||
Lithuanian
|
||
</a>
|
||
</li>
|
||
|
||
<li class="md-select__item">
|
||
<a href="https://docs-hottubapp-io.translate.goog/?_x_tr_sl=en&_x_tr_tl=lb" hreflang="lb" class="md-select__link">
|
||
Luxembourgish
|
||
</a>
|
||
</li>
|
||
|
||
<li class="md-select__item">
|
||
<a href="https://docs-hottubapp-io.translate.goog/?_x_tr_sl=en&_x_tr_tl=mt" hreflang="mt" class="md-select__link">
|
||
Maltese
|
||
</a>
|
||
</li>
|
||
|
||
<li class="md-select__item">
|
||
<a href="https://docs-hottubapp-io.translate.goog/?_x_tr_sl=en&_x_tr_tl=ro" hreflang="ro" class="md-select__link">
|
||
Romanian
|
||
</a>
|
||
</li>
|
||
|
||
<li class="md-select__item">
|
||
<a href="https://docs-hottubapp-io.translate.goog/?_x_tr_sl=en&_x_tr_tl=sk" hreflang="sk" class="md-select__link">
|
||
Slovak
|
||
</a>
|
||
</li>
|
||
|
||
<li class="md-select__item">
|
||
<a href="https://docs-hottubapp-io.translate.goog/?_x_tr_sl=en&_x_tr_tl=sl" hreflang="sl" class="md-select__link">
|
||
Slovenian
|
||
</a>
|
||
</li>
|
||
|
||
<li class="md-select__item">
|
||
<a href="https://docs-hottubapp-io.translate.goog/?_x_tr_sl=en&_x_tr_tl=sv" hreflang="sv" class="md-select__link">
|
||
Swedish
|
||
</a>
|
||
</li>
|
||
|
||
</ul>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
|
||
|
||
|
||
<label class="md-header__button md-icon" for="__search">
|
||
|
||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.52 6.52 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5"></path></svg>
|
||
</label>
|
||
<div class="md-search" data-md-component="search" role="dialog">
|
||
<label class="md-search__overlay" for="__search"></label>
|
||
<div class="md-search__inner" role="search">
|
||
<form class="md-search__form" name="search">
|
||
<input type="text" class="md-search__input" name="query" aria-label="Search" placeholder="Search" autocapitalize="none" autocorrect="off" autocomplete="off" spellcheck="false" data-md-component="search-query" required="">
|
||
<label class="md-search__icon md-icon" for="__search">
|
||
|
||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.52 6.52 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5"></path></svg>
|
||
|
||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M20 11v2H8l5.5 5.5-1.42 1.42L4.16 12l7.92-7.92L13.5 5.5 8 11z"></path></svg>
|
||
</label>
|
||
<nav class="md-search__options" aria-label="Search">
|
||
|
||
<button type="reset" class="md-search__icon md-icon" title="Clear" aria-label="Clear" tabindex="-1">
|
||
|
||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z"></path></svg>
|
||
</button>
|
||
</nav>
|
||
|
||
<div class="md-search__suggest" data-md-component="search-suggest"></div>
|
||
|
||
</form>
|
||
<div class="md-search__output">
|
||
<div class="md-search__scrollwrap" tabindex="0">
|
||
<div class="md-search-result" data-md-component="search-result">
|
||
<div class="md-search-result__meta">Type to start searching</div>
|
||
<ol class="md-search-result__list" role="presentation" hidden=""></ol>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
|
||
|
||
</nav>
|
||
|
||
</header>
|
||
|
||
<div class="md-container" data-md-component="container">
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<main class="md-main" data-md-component="main">
|
||
<div class="md-main__inner md-grid">
|
||
|
||
|
||
|
||
<div class="md-sidebar md-sidebar--primary" data-md-component="sidebar" data-md-type="navigation" style="top: 48px;">
|
||
<div class="md-sidebar__scrollwrap" style="height: 490px;">
|
||
<div class="md-sidebar__inner">
|
||
|
||
|
||
|
||
|
||
<nav class="md-nav md-nav--primary" aria-label="Navigation" data-md-level="0">
|
||
<label class="md-nav__title" for="__drawer">
|
||
<a href="https://docs.hottubapp.io/" title="Hot Tub Docs" class="md-nav__button md-logo" aria-label="Hot Tub Docs" data-md-component="logo">
|
||
|
||
<img src="%F0%9F%8E%AC%20Videos%20-%20Hot%20Tub%20Docs_files/icon-round.png" alt="logo">
|
||
|
||
</a>
|
||
Hot Tub Docs
|
||
</label>
|
||
|
||
<ul class="md-nav__list">
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<li class="md-nav__item">
|
||
<a href="https://docs.hottubapp.io/" class="md-nav__link">
|
||
|
||
|
||
|
||
<span class="md-ellipsis">
|
||
🏡 Home
|
||
|
||
</span>
|
||
|
||
|
||
</a>
|
||
</li>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<li class="md-nav__item">
|
||
<a href="https://docs.hottubapp.io/install/" class="md-nav__link">
|
||
|
||
|
||
|
||
<span class="md-ellipsis">
|
||
📲 Install
|
||
|
||
</span>
|
||
|
||
|
||
</a>
|
||
</li>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<li class="md-nav__item">
|
||
<a href="https://docs.hottubapp.io/setup/" class="md-nav__link">
|
||
|
||
|
||
|
||
<span class="md-ellipsis">
|
||
🚀 Setup
|
||
|
||
</span>
|
||
|
||
|
||
</a>
|
||
</li>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<li class="md-nav__item">
|
||
<a href="https://docs.hottubapp.io/advanced-settings/" class="md-nav__link">
|
||
|
||
|
||
|
||
<span class="md-ellipsis">
|
||
🪛 Settings
|
||
|
||
</span>
|
||
|
||
|
||
</a>
|
||
</li>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<li class="md-nav__item">
|
||
<a href="https://docs.hottubapp.io/faq/" class="md-nav__link">
|
||
|
||
|
||
|
||
<span class="md-ellipsis">
|
||
❓ FAQ
|
||
|
||
</span>
|
||
|
||
|
||
</a>
|
||
</li>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<li class="md-nav__item md-nav__item--active md-nav__item--section md-nav__item--nested">
|
||
|
||
|
||
|
||
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_6" checked="checked">
|
||
|
||
|
||
<label class="md-nav__link" for="__nav_6" id="__nav_6_label" tabindex="">
|
||
|
||
|
||
|
||
<span class="md-ellipsis">
|
||
Developers
|
||
|
||
</span>
|
||
|
||
|
||
<span class="md-nav__icon md-icon"></span>
|
||
</label>
|
||
|
||
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_6_label" aria-expanded="true">
|
||
<label class="md-nav__title" for="__nav_6">
|
||
<span class="md-nav__icon md-icon"></span>
|
||
Developers
|
||
</label>
|
||
<ul class="md-nav__list">
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<li class="md-nav__item">
|
||
<a href="https://docs.hottubapp.io/developers/server/" class="md-nav__link">
|
||
|
||
|
||
|
||
<span class="md-ellipsis">
|
||
📦 Server
|
||
|
||
</span>
|
||
|
||
|
||
</a>
|
||
</li>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<li class="md-nav__item md-nav__item--active md-nav__item--nested">
|
||
|
||
|
||
|
||
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_6_2" checked="checked">
|
||
|
||
|
||
<label class="md-nav__link" for="__nav_6_2" id="__nav_6_2_label" tabindex="0">
|
||
|
||
|
||
|
||
<span class="md-ellipsis">
|
||
🌐 Endpoints
|
||
|
||
</span>
|
||
|
||
|
||
<span class="md-nav__icon md-icon"></span>
|
||
</label>
|
||
|
||
<nav class="md-nav" data-md-level="2" aria-labelledby="__nav_6_2_label" aria-expanded="true">
|
||
<label class="md-nav__title" for="__nav_6_2">
|
||
<span class="md-nav__icon md-icon"></span>
|
||
🌐 Endpoints
|
||
</label>
|
||
<ul class="md-nav__list">
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<li class="md-nav__item">
|
||
<a href="https://docs.hottubapp.io/developers/api/status/" class="md-nav__link">
|
||
|
||
|
||
|
||
<span class="md-ellipsis">
|
||
📡 Status
|
||
|
||
</span>
|
||
|
||
|
||
</a>
|
||
</li>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<li class="md-nav__item md-nav__item--active">
|
||
|
||
<input class="md-nav__toggle md-toggle" type="checkbox" id="__toc">
|
||
|
||
|
||
|
||
<label class="md-nav__link md-nav__link--active" for="__toc">
|
||
|
||
|
||
|
||
<span class="md-ellipsis">
|
||
🎬 Videos
|
||
|
||
</span>
|
||
|
||
|
||
<span class="md-nav__icon md-icon"></span>
|
||
</label>
|
||
|
||
<a href="https://docs.hottubapp.io/developers/api/videos/" class="md-nav__link md-nav__link--active">
|
||
|
||
|
||
|
||
<span class="md-ellipsis">
|
||
🎬 Videos
|
||
|
||
</span>
|
||
|
||
|
||
</a>
|
||
|
||
|
||
|
||
<nav class="md-nav md-nav--secondary" aria-label="Table of contents">
|
||
|
||
|
||
|
||
|
||
<label class="md-nav__title" for="__toc">
|
||
<span class="md-nav__icon md-icon"></span>
|
||
Table of contents
|
||
</label>
|
||
<ul class="md-nav__list" data-md-component="toc">
|
||
|
||
<li class="md-nav__item">
|
||
<a href="https://docs.hottubapp.io/developers/api/videos/#overview" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
Overview
|
||
</span>
|
||
</a>
|
||
|
||
<nav class="md-nav" aria-label="Overview">
|
||
<ul class="md-nav__list">
|
||
|
||
<li class="md-nav__item">
|
||
<a href="https://docs.hottubapp.io/developers/api/videos/#request" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
Request
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="https://docs.hottubapp.io/developers/api/videos/#request-parameters" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
Request Parameters
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="https://docs.hottubapp.io/developers/api/videos/#response" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
Response
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
</ul>
|
||
</nav>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="https://docs.hottubapp.io/developers/api/videos/#field-reference" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
Field Reference
|
||
</span>
|
||
</a>
|
||
|
||
<nav class="md-nav" aria-label="Field Reference">
|
||
<ul class="md-nav__list">
|
||
|
||
<li class="md-nav__item">
|
||
<a href="https://docs.hottubapp.io/developers/api/videos/#response-root-fields" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
Response Root Fields
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="https://docs.hottubapp.io/developers/api/videos/#pageinfo-object-fields" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
PageInfo Object Fields
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="https://docs.hottubapp.io/developers/api/videos/#video-object-fields" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
Video Object Fields
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="https://docs.hottubapp.io/developers/api/videos/#uploaderprofile-object" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
UploaderProfile Object
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="https://docs.hottubapp.io/developers/api/videos/#format-object-fields" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
Format Object Fields
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
</ul>
|
||
</nav>
|
||
|
||
</li>
|
||
|
||
</ul>
|
||
|
||
</nav>
|
||
|
||
</li>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<li class="md-nav__item">
|
||
<a href="https://docs.hottubapp.io/developers/api/uploaders/" class="md-nav__link">
|
||
|
||
|
||
|
||
<span class="md-ellipsis">
|
||
👤 Uploaders
|
||
|
||
</span>
|
||
|
||
|
||
</a>
|
||
</li>
|
||
|
||
|
||
|
||
|
||
</ul>
|
||
</nav>
|
||
|
||
</li>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<li class="md-nav__item">
|
||
<a href="https://docs.hottubapp.io/developers/url-schemes/" class="md-nav__link">
|
||
|
||
|
||
|
||
<span class="md-ellipsis">
|
||
🔗 URL Schemes
|
||
|
||
</span>
|
||
|
||
|
||
</a>
|
||
</li>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<li class="md-nav__item">
|
||
<a href="https://docs.hottubapp.io/developers/developer-tools/" class="md-nav__link">
|
||
|
||
|
||
|
||
<span class="md-ellipsis">
|
||
🐛 Developer Tools
|
||
|
||
</span>
|
||
|
||
|
||
</a>
|
||
</li>
|
||
|
||
|
||
|
||
|
||
</ul>
|
||
</nav>
|
||
|
||
</li>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<li class="md-nav__item md-nav__item--section md-nav__item--nested">
|
||
|
||
|
||
|
||
|
||
|
||
<input class="md-nav__toggle md-toggle md-toggle--indeterminate" type="checkbox" id="__nav_7">
|
||
|
||
|
||
<label class="md-nav__link" for="__nav_7" id="__nav_7_label" tabindex="">
|
||
|
||
|
||
|
||
<span class="md-ellipsis">
|
||
About Us
|
||
|
||
</span>
|
||
|
||
|
||
<span class="md-nav__icon md-icon"></span>
|
||
</label>
|
||
|
||
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_7_label" aria-expanded="false">
|
||
<label class="md-nav__title" for="__nav_7">
|
||
<span class="md-nav__icon md-icon"></span>
|
||
About Us
|
||
</label>
|
||
<ul class="md-nav__list">
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<li class="md-nav__item">
|
||
<a href="https://docs.hottubapp.io/about/info/" class="md-nav__link">
|
||
|
||
|
||
|
||
<span class="md-ellipsis">
|
||
ℹ️ Info
|
||
|
||
</span>
|
||
|
||
|
||
</a>
|
||
</li>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<li class="md-nav__item">
|
||
<a href="https://docs.hottubapp.io/about/contact/" class="md-nav__link">
|
||
|
||
|
||
|
||
<span class="md-ellipsis">
|
||
📇 Contact Us
|
||
|
||
</span>
|
||
|
||
|
||
</a>
|
||
</li>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<li class="md-nav__item">
|
||
<a href="https://docs.hottubapp.io/about/press-kit/" class="md-nav__link">
|
||
|
||
|
||
|
||
<span class="md-ellipsis">
|
||
📰 Press Kit
|
||
|
||
</span>
|
||
|
||
|
||
</a>
|
||
</li>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<li class="md-nav__item">
|
||
<a href="https://docs.hottubapp.io/about/legal/" class="md-nav__link">
|
||
|
||
|
||
|
||
<span class="md-ellipsis">
|
||
📄 Terms & Privacy Policy
|
||
|
||
</span>
|
||
|
||
|
||
</a>
|
||
</li>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<li class="md-nav__item">
|
||
<a href="https://docs.hottubapp.io/about/partners/" class="md-nav__link">
|
||
|
||
|
||
|
||
<span class="md-ellipsis">
|
||
🤝 Partner with Hot Tub
|
||
|
||
</span>
|
||
|
||
|
||
</a>
|
||
</li>
|
||
|
||
|
||
|
||
|
||
</ul>
|
||
</nav>
|
||
|
||
</li>
|
||
|
||
|
||
|
||
</ul>
|
||
</nav>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
|
||
|
||
<div class="md-sidebar md-sidebar--secondary" data-md-component="sidebar" data-md-type="toc" style="top: 48px;">
|
||
<div class="md-sidebar__scrollwrap" style="height: 490px;">
|
||
<div class="md-sidebar__inner">
|
||
|
||
|
||
<nav class="md-nav md-nav--secondary" aria-label="Table of contents">
|
||
|
||
|
||
|
||
|
||
<label class="md-nav__title" for="__toc">
|
||
<span class="md-nav__icon md-icon"></span>
|
||
Table of contents
|
||
</label>
|
||
<ul class="md-nav__list" data-md-component="toc">
|
||
|
||
<li class="md-nav__item">
|
||
<a href="https://docs.hottubapp.io/developers/api/videos/#overview" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
Overview
|
||
</span>
|
||
</a>
|
||
|
||
<nav class="md-nav" aria-label="Overview">
|
||
<ul class="md-nav__list">
|
||
|
||
<li class="md-nav__item">
|
||
<a href="https://docs.hottubapp.io/developers/api/videos/#request" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
Request
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="https://docs.hottubapp.io/developers/api/videos/#request-parameters" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
Request Parameters
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="https://docs.hottubapp.io/developers/api/videos/#response" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
Response
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
</ul>
|
||
</nav>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="https://docs.hottubapp.io/developers/api/videos/#field-reference" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
Field Reference
|
||
</span>
|
||
</a>
|
||
|
||
<nav class="md-nav" aria-label="Field Reference">
|
||
<ul class="md-nav__list">
|
||
|
||
<li class="md-nav__item">
|
||
<a href="https://docs.hottubapp.io/developers/api/videos/#response-root-fields" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
Response Root Fields
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="https://docs.hottubapp.io/developers/api/videos/#pageinfo-object-fields" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
PageInfo Object Fields
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="https://docs.hottubapp.io/developers/api/videos/#video-object-fields" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
Video Object Fields
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="https://docs.hottubapp.io/developers/api/videos/#uploaderprofile-object" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
UploaderProfile Object
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="https://docs.hottubapp.io/developers/api/videos/#format-object-fields" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
Format Object Fields
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
</ul>
|
||
</nav>
|
||
|
||
</li>
|
||
|
||
</ul>
|
||
|
||
</nav>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
|
||
|
||
<div class="md-content" data-md-component="content">
|
||
<article class="md-content__inner md-typeset">
|
||
|
||
|
||
|
||
|
||
|
||
<h1>🎬 Videos</h1>
|
||
|
||
<div><h2 id="overview">Overview</h2>
|
||
<p>The <code>POST /api/videos</code> endpoint is used to retrieve videos
|
||
from the given source. It contains information about the videos,
|
||
channels, and other relevant information.</p>
|
||
<h3 id="request">Request</h3>
|
||
<p><code>POST /api/videos</code></p>
|
||
<div class="highlight"><pre><span></span><code tabindex="0"><a id="__codelineno-0-1" name="__codelineno-0-1" href="https://docs.hottubapp.io/developers/api/videos/#__codelineno-0-1"></a><span class="p">{</span>
|
||
<a id="__codelineno-0-2" name="__codelineno-0-2" href="https://docs.hottubapp.io/developers/api/videos/#__codelineno-0-2"></a><span class="w"> </span><span class="nt">"query"</span><span class="p">:</span><span class="w"> </span><span class="s2">"kittens"</span><span class="p">,</span>
|
||
<a id="__codelineno-0-3" name="__codelineno-0-3" href="https://docs.hottubapp.io/developers/api/videos/#__codelineno-0-3"></a><span class="w"> </span><span class="nt">"channel"</span><span class="p">:</span><span class="w"> </span><span class="s2">"my-channel"</span><span class="p">,</span>
|
||
<a id="__codelineno-0-4" name="__codelineno-0-4" href="https://docs.hottubapp.io/developers/api/videos/#__codelineno-0-4"></a><span class="w"> </span><span class="nt">"channels"</span><span class="p">:</span><span class="w"> </span><span class="p">[</span><span class="s2">"my-channel"</span><span class="p">,</span><span class="w"> </span><span class="s2">"another-channel"</span><span class="p">],</span><span class="w"> </span><span class="c1">// Channels supporting multiple sites/channels</span>
|
||
<a id="__codelineno-0-5" name="__codelineno-0-5" href="https://docs.hottubapp.io/developers/api/videos/#__codelineno-0-5"></a><span class="w"> </span><span class="nt">"sort"</span><span class="p">:</span><span class="w"> </span><span class="s2">"new"</span><span class="p">,</span>
|
||
<a id="__codelineno-0-6" name="__codelineno-0-6" href="https://docs.hottubapp.io/developers/api/videos/#__codelineno-0-6"></a><span class="w"> </span><span class="nt">"page"</span><span class="p">:</span><span class="w"> </span><span class="mi">1</span><span class="p">,</span>
|
||
<a id="__codelineno-0-7" name="__codelineno-0-7" href="https://docs.hottubapp.io/developers/api/videos/#__codelineno-0-7"></a><span class="w"> </span><span class="nt">"pageSize"</span><span class="p">:</span><span class="w"> </span><span class="mi">40</span><span class="p">,</span>
|
||
<a id="__codelineno-0-8" name="__codelineno-0-8" href="https://docs.hottubapp.io/developers/api/videos/#__codelineno-0-8"></a><span class="w"> </span><span class="nt">"clientVersion"</span><span class="p">:</span><span class="w"> </span><span class="s2">"2.2.7-38"</span><span class="p">,</span><span class="w"> </span><span class="c1">// {version}—{build}, useful for feature availability </span>
|
||
<a id="__codelineno-0-9" name="__codelineno-0-9" href="https://docs.hottubapp.io/developers/api/videos/#__codelineno-0-9"></a><span class="w"> </span><span class="nt">"blockedKeywords"</span><span class="p">:</span><span class="w"> </span><span class="p">[</span><span class="s2">"example"</span><span class="p">],</span>
|
||
<a id="__codelineno-0-10" name="__codelineno-0-10" href="https://docs.hottubapp.io/developers/api/videos/#__codelineno-0-10"></a><span class="w"> </span><span class="nt">"blockedUploaders"</span><span class="p">:</span><span class="w"> </span><span class="p">[</span><span class="s2">"uploader-id-123"</span><span class="p">],</span>
|
||
<a id="__codelineno-0-11" name="__codelineno-0-11" href="https://docs.hottubapp.io/developers/api/videos/#__codelineno-0-11"></a><span class="w"> </span><span class="c1">// Your server's custom parameters will be added here</span>
|
||
<a id="__codelineno-0-12" name="__codelineno-0-12" href="https://docs.hottubapp.io/developers/api/videos/#__codelineno-0-12"></a><span class="w"> </span><span class="nt">"quality"</span><span class="p">:</span><span class="w"> </span><span class="s2">"hd"</span><span class="p">,</span>
|
||
<a id="__codelineno-0-13" name="__codelineno-0-13" href="https://docs.hottubapp.io/developers/api/videos/#__codelineno-0-13"></a><span class="w"> </span><span class="nt">"duration"</span><span class="p">:</span><span class="w"> </span><span class="s2">"short"</span><span class="p">,</span>
|
||
<a id="__codelineno-0-14" name="__codelineno-0-14" href="https://docs.hottubapp.io/developers/api/videos/#__codelineno-0-14"></a><span class="w"> </span><span class="nt">"flavor"</span><span class="p">:</span><span class="w"> </span><span class="s2">"mint_chocolate_chip"</span>
|
||
<a id="__codelineno-0-15" name="__codelineno-0-15" href="https://docs.hottubapp.io/developers/api/videos/#__codelineno-0-15"></a><span class="p">}</span>
|
||
</code></pre></div>
|
||
<h3 id="request-parameters">Request Parameters</h3>
|
||
<div class="md-typeset__scrollwrap"><div class="md-typeset__table"><table>
|
||
<thead>
|
||
<tr>
|
||
<th>Field</th>
|
||
<th>Type</th>
|
||
<th>Default</th>
|
||
<th>Description</th>
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
<tr>
|
||
<td><code>query</code></td>
|
||
<td><code>string</code></td>
|
||
<td><code>""</code></td>
|
||
<td>Search query</td>
|
||
</tr>
|
||
<tr>
|
||
<td><code>channel</code></td>
|
||
<td><code>string</code></td>
|
||
<td>—</td>
|
||
<td>Single channel identifier (as defined in your server's status response)</td>
|
||
</tr>
|
||
<tr>
|
||
<td><code>channels</code></td>
|
||
<td><code>string[]</code></td>
|
||
<td>—</td>
|
||
<td>Multiple channel identifiers to search across (overrides <code>channel</code>)</td>
|
||
</tr>
|
||
<tr>
|
||
<td><code>sort</code></td>
|
||
<td><code>string</code></td>
|
||
<td><code>"relevance"</code></td>
|
||
<td>Sort option ID (as defined in your server's status response options)</td>
|
||
</tr>
|
||
<tr>
|
||
<td><code>page</code></td>
|
||
<td><code>number</code></td>
|
||
<td><code>1</code></td>
|
||
<td>Page number for pagination</td>
|
||
</tr>
|
||
<tr>
|
||
<td><code>pageSize</code></td>
|
||
<td><code>number</code></td>
|
||
<td><code>40</code></td>
|
||
<td>Results per page</td>
|
||
</tr>
|
||
<tr>
|
||
<td><code>clientVersion</code></td>
|
||
<td><code>string</code></td>
|
||
<td>—</td>
|
||
<td>App version string (e.g., <code>"2.2.7-38"</code>)</td>
|
||
</tr>
|
||
<tr>
|
||
<td><code>blockedKeywords</code></td>
|
||
<td><code>string[]</code></td>
|
||
<td><code>[]</code></td>
|
||
<td>Keywords to exclude from results</td>
|
||
</tr>
|
||
<tr>
|
||
<td><code>blockedUploaders</code></td>
|
||
<td><code>string[]</code></td>
|
||
<td><code>[]</code></td>
|
||
<td>Uploader IDs to exclude from results</td>
|
||
</tr>
|
||
<tr>
|
||
<td><em>(server options)</em></td>
|
||
<td><code>any</code></td>
|
||
<td>—</td>
|
||
<td>Any option IDs defined in your server's status response are forwarded as-is</td>
|
||
</tr>
|
||
</tbody>
|
||
</table></div></div>
|
||
<div class="admonition info">
|
||
<p class="admonition-title">Server-Defined Filter Options</p>
|
||
<p>Filter parameters beyond the core ones above (e.g., duration,
|
||
quality, content type, sexuality) are entirely defined by your server
|
||
via the <code>options</code> array in the <a href="https://docs.hottubapp.io/developers/api/status/">Status endpoint</a> response. Whatever <code>id</code> values you expose there will be sent back verbatim when the user selects them. Your <code>/api/videos</code> handler receives them as top-level keys in the request body.</p>
|
||
</div>
|
||
<hr>
|
||
<h3 id="response">Response</h3>
|
||
<div class="highlight"><pre><span></span><code tabindex="0"><a id="__codelineno-1-1" name="__codelineno-1-1" href="https://docs.hottubapp.io/developers/api/videos/#__codelineno-1-1"></a><span class="p">{</span>
|
||
<a id="__codelineno-1-2" name="__codelineno-1-2" href="https://docs.hottubapp.io/developers/api/videos/#__codelineno-1-2"></a><span class="w"> </span><span class="nt">"pageInfo"</span><span class="p">:</span><span class="w"> </span><span class="p">{</span>
|
||
<a id="__codelineno-1-3" name="__codelineno-1-3" href="https://docs.hottubapp.io/developers/api/videos/#__codelineno-1-3"></a><span class="w"> </span><span class="nt">"hasNextPage"</span><span class="p">:</span><span class="w"> </span><span class="kc">true</span><span class="p">,</span>
|
||
<a id="__codelineno-1-4" name="__codelineno-1-4" href="https://docs.hottubapp.io/developers/api/videos/#__codelineno-1-4"></a><span class="w"> </span><span class="nt">"recommendations"</span><span class="p">:</span><span class="w"> </span><span class="p">[</span><span class="s2">"cats"</span><span class="p">,</span><span class="w"> </span><span class="s2">"pets"</span><span class="p">,</span><span class="w"> </span><span class="s2">"animals"</span><span class="p">],</span>
|
||
<a id="__codelineno-1-5" name="__codelineno-1-5" href="https://docs.hottubapp.io/developers/api/videos/#__codelineno-1-5"></a><span class="w"> </span><span class="nt">"error"</span><span class="p">:</span><span class="w"> </span><span class="kc">null</span><span class="p">,</span><span class="w"> </span><span class="c1">// e.g. "No results were found"</span>
|
||
<a id="__codelineno-1-6" name="__codelineno-1-6" href="https://docs.hottubapp.io/developers/api/videos/#__codelineno-1-6"></a><span class="w"> </span><span class="nt">"message"</span><span class="p">:</span><span class="w"> </span><span class="kc">null</span><span class="p">,</span><span class="w"> </span><span class="c1">// e.g. "Showing cached results" or "Some content filtered based on preferences"</span>
|
||
<a id="__codelineno-1-7" name="__codelineno-1-7" href="https://docs.hottubapp.io/developers/api/videos/#__codelineno-1-7"></a><span class="w"> </span><span class="nt">"parameters"</span><span class="p">:</span><span class="w"> </span><span class="p">{</span>
|
||
<a id="__codelineno-1-8" name="__codelineno-1-8" href="https://docs.hottubapp.io/developers/api/videos/#__codelineno-1-8"></a><span class="w"> </span><span class="nt">"totalResults"</span><span class="p">:</span><span class="w"> </span><span class="mi">1000</span>
|
||
<a id="__codelineno-1-9" name="__codelineno-1-9" href="https://docs.hottubapp.io/developers/api/videos/#__codelineno-1-9"></a><span class="w"> </span><span class="p">}</span>
|
||
<a id="__codelineno-1-10" name="__codelineno-1-10" href="https://docs.hottubapp.io/developers/api/videos/#__codelineno-1-10"></a><span class="w"> </span><span class="p">},</span>
|
||
<a id="__codelineno-1-11" name="__codelineno-1-11" href="https://docs.hottubapp.io/developers/api/videos/#__codelineno-1-11"></a><span class="w"> </span><span class="nt">"items"</span><span class="p">:</span><span class="w"> </span><span class="p">[</span>
|
||
<a id="__codelineno-1-12" name="__codelineno-1-12" href="https://docs.hottubapp.io/developers/api/videos/#__codelineno-1-12"></a><span class="w"> </span><span class="p">{</span>
|
||
<a id="__codelineno-1-13" name="__codelineno-1-13" href="https://docs.hottubapp.io/developers/api/videos/#__codelineno-1-13"></a><span class="w"> </span><span class="nt">"id"</span><span class="p">:</span><span class="w"> </span><span class="s2">"c85017ca87477168d648727753c4ded8a35f173e22ef93743e707b296becb299"</span><span class="p">,</span>
|
||
<a id="__codelineno-1-14" name="__codelineno-1-14" href="https://docs.hottubapp.io/developers/api/videos/#__codelineno-1-14"></a><span class="w"> </span><span class="nt">"title"</span><span class="p">:</span><span class="w"> </span><span class="s2">"20 Minutes of Adorable Kittens BEST Compilation"</span><span class="p">,</span>
|
||
<a id="__codelineno-1-15" name="__codelineno-1-15" href="https://docs.hottubapp.io/developers/api/videos/#__codelineno-1-15"></a><span class="w"> </span><span class="nt">"url"</span><span class="p">:</span><span class="w"> </span><span class="s2">"https://www.example.com/watch?v=y0sF5xhGreA"</span><span class="p">,</span>
|
||
<a id="__codelineno-1-16" name="__codelineno-1-16" href="https://docs.hottubapp.io/developers/api/videos/#__codelineno-1-16"></a><span class="w"> </span><span class="nt">"duration"</span><span class="p">:</span><span class="w"> </span><span class="mi">110</span><span class="p">,</span>
|
||
<a id="__codelineno-1-17" name="__codelineno-1-17" href="https://docs.hottubapp.io/developers/api/videos/#__codelineno-1-17"></a><span class="w"> </span><span class="nt">"channel"</span><span class="p">:</span><span class="w"> </span><span class="s2">"my-channel"</span><span class="p">,</span>
|
||
<a id="__codelineno-1-18" name="__codelineno-1-18" href="https://docs.hottubapp.io/developers/api/videos/#__codelineno-1-18"></a><span class="w"> </span><span class="nt">"thumb"</span><span class="p">:</span><span class="w"> </span><span class="s2">"https://i.example.com/vi/y0sF5xhGreA/hqdefault.jpg"</span><span class="p">,</span>
|
||
<a id="__codelineno-1-19" name="__codelineno-1-19" href="https://docs.hottubapp.io/developers/api/videos/#__codelineno-1-19"></a><span class="w"> </span><span class="nt">"views"</span><span class="p">:</span><span class="w"> </span><span class="mi">14622653</span><span class="p">,</span>
|
||
<a id="__codelineno-1-20" name="__codelineno-1-20" href="https://docs.hottubapp.io/developers/api/videos/#__codelineno-1-20"></a><span class="w"> </span><span class="nt">"rating"</span><span class="p">:</span><span class="w"> </span><span class="mi">95</span><span class="p">,</span>
|
||
<a id="__codelineno-1-21" name="__codelineno-1-21" href="https://docs.hottubapp.io/developers/api/videos/#__codelineno-1-21"></a><span class="w"> </span><span class="nt">"uploader"</span><span class="p">:</span><span class="w"> </span><span class="s2">"Awesome Vids"</span><span class="p">,</span>
|
||
<a id="__codelineno-1-22" name="__codelineno-1-22" href="https://docs.hottubapp.io/developers/api/videos/#__codelineno-1-22"></a><span class="w"> </span><span class="nt">"uploaderUrl"</span><span class="p">:</span><span class="w"> </span><span class="s2">"https://www.example.com/@awesomeVids"</span><span class="p">,</span>
|
||
<a id="__codelineno-1-23" name="__codelineno-1-23" href="https://docs.hottubapp.io/developers/api/videos/#__codelineno-1-23"></a><span class="w"> </span><span class="nt">"uploaderId"</span><span class="p">:</span><span class="w"> </span><span class="s2">"awesomeVids"</span><span class="p">,</span>
|
||
<a id="__codelineno-1-24" name="__codelineno-1-24" href="https://docs.hottubapp.io/developers/api/videos/#__codelineno-1-24"></a><span class="w"> </span><span class="nt">"verified"</span><span class="p">:</span><span class="w"> </span><span class="kc">false</span><span class="p">,</span>
|
||
<a id="__codelineno-1-25" name="__codelineno-1-25" href="https://docs.hottubapp.io/developers/api/videos/#__codelineno-1-25"></a><span class="w"> </span><span class="nt">"isVR"</span><span class="p">:</span><span class="w"> </span><span class="kc">false</span><span class="p">,</span>
|
||
<a id="__codelineno-1-26" name="__codelineno-1-26" href="https://docs.hottubapp.io/developers/api/videos/#__codelineno-1-26"></a><span class="w"> </span><span class="nt">"tags"</span><span class="p">:</span><span class="w"> </span><span class="p">[</span><span class="s2">"cats"</span><span class="p">,</span><span class="w"> </span><span class="s2">"kittens"</span><span class="p">,</span><span class="w"> </span><span class="s2">"pets"</span><span class="p">],</span>
|
||
<a id="__codelineno-1-27" name="__codelineno-1-27" href="https://docs.hottubapp.io/developers/api/videos/#__codelineno-1-27"></a><span class="w"> </span><span class="nt">"categories"</span><span class="p">:</span><span class="w"> </span><span class="p">[</span><span class="s2">"Animals"</span><span class="p">,</span><span class="w"> </span><span class="s2">"Entertainment"</span><span class="p">],</span>
|
||
<a id="__codelineno-1-28" name="__codelineno-1-28" href="https://docs.hottubapp.io/developers/api/videos/#__codelineno-1-28"></a><span class="w"> </span><span class="nt">"uploadedAt"</span><span class="p">:</span><span class="w"> </span><span class="s2">"2025-01-03T10:15:54.000Z"</span><span class="p">,</span>
|
||
<a id="__codelineno-1-29" name="__codelineno-1-29" href="https://docs.hottubapp.io/developers/api/videos/#__codelineno-1-29"></a><span class="w"> </span><span class="nt">"preview"</span><span class="p">:</span><span class="w"> </span><span class="s2">"https://example.com/preview.mp4"</span><span class="p">,</span>
|
||
<a id="__codelineno-1-30" name="__codelineno-1-30" href="https://docs.hottubapp.io/developers/api/videos/#__codelineno-1-30"></a><span class="w"> </span><span class="nt">"uploaderId"</span><span class="p">:</span><span class="w"> </span><span class="s2">"petcollective"</span><span class="p">,</span>
|
||
<a id="__codelineno-1-31" name="__codelineno-1-31" href="https://docs.hottubapp.io/developers/api/videos/#__codelineno-1-31"></a><span class="w"> </span><span class="nt">"aspectRatio"</span><span class="p">:</span><span class="w"> </span><span class="mf">1.78</span><span class="p">,</span>
|
||
<a id="__codelineno-1-32" name="__codelineno-1-32" href="https://docs.hottubapp.io/developers/api/videos/#__codelineno-1-32"></a><span class="w"> </span><span class="nt">"uploaderProfile"</span><span class="p">:</span><span class="w"> </span><span class="p">{</span>
|
||
<a id="__codelineno-1-33" name="__codelineno-1-33" href="https://docs.hottubapp.io/developers/api/videos/#__codelineno-1-33"></a><span class="w"> </span><span class="nt">"id"</span><span class="p">:</span><span class="w"> </span><span class="s2">"abc123"</span><span class="p">,</span>
|
||
<a id="__codelineno-1-34" name="__codelineno-1-34" href="https://docs.hottubapp.io/developers/api/videos/#__codelineno-1-34"></a><span class="w"> </span><span class="nt">"name"</span><span class="p">:</span><span class="w"> </span><span class="s2">"Awesome Vids"</span><span class="p">,</span>
|
||
<a id="__codelineno-1-35" name="__codelineno-1-35" href="https://docs.hottubapp.io/developers/api/videos/#__codelineno-1-35"></a><span class="w"> </span><span class="nt">"avatar"</span><span class="p">:</span><span class="w"> </span><span class="s2">"https://example.com/avatar.jpg"</span><span class="p">,</span>
|
||
<a id="__codelineno-1-36" name="__codelineno-1-36" href="https://docs.hottubapp.io/developers/api/videos/#__codelineno-1-36"></a><span class="w"> </span><span class="nt">"videoCount"</span><span class="p">:</span><span class="w"> </span><span class="mi">342</span><span class="p">,</span>
|
||
<a id="__codelineno-1-37" name="__codelineno-1-37" href="https://docs.hottubapp.io/developers/api/videos/#__codelineno-1-37"></a><span class="w"> </span><span class="nt">"totalViews"</span><span class="p">:</span><span class="w"> </span><span class="mi">14500000</span>
|
||
<a id="__codelineno-1-38" name="__codelineno-1-38" href="https://docs.hottubapp.io/developers/api/videos/#__codelineno-1-38"></a><span class="w"> </span><span class="p">},</span>
|
||
<a id="__codelineno-1-39" name="__codelineno-1-39" href="https://docs.hottubapp.io/developers/api/videos/#__codelineno-1-39"></a><span class="w"> </span><span class="nt">"formats"</span><span class="p">:</span><span class="w"> </span><span class="p">[</span>
|
||
<a id="__codelineno-1-40" name="__codelineno-1-40" href="https://docs.hottubapp.io/developers/api/videos/#__codelineno-1-40"></a><span class="w"> </span><span class="p">{</span>
|
||
<a id="__codelineno-1-41" name="__codelineno-1-41" href="https://docs.hottubapp.io/developers/api/videos/#__codelineno-1-41"></a><span class="w"> </span><span class="nt">"url"</span><span class="p">:</span><span class="w"> </span><span class="s2">"https://www.example.com/watch?v=y0sF5xhGreA"</span><span class="p">,</span>
|
||
<a id="__codelineno-1-42" name="__codelineno-1-42" href="https://docs.hottubapp.io/developers/api/videos/#__codelineno-1-42"></a><span class="w"> </span><span class="nt">"quality"</span><span class="p">:</span><span class="w"> </span><span class="mi">1080</span><span class="p">,</span>
|
||
<a id="__codelineno-1-43" name="__codelineno-1-43" href="https://docs.hottubapp.io/developers/api/videos/#__codelineno-1-43"></a><span class="w"> </span><span class="nt">"format"</span><span class="p">:</span><span class="w"> </span><span class="s2">"mp4"</span><span class="p">,</span>
|
||
<a id="__codelineno-1-44" name="__codelineno-1-44" href="https://docs.hottubapp.io/developers/api/videos/#__codelineno-1-44"></a><span class="w"> </span><span class="nt">"formatId"</span><span class="p">:</span><span class="w"> </span><span class="s2">"mp4-1080"</span><span class="p">,</span>
|
||
<a id="__codelineno-1-45" name="__codelineno-1-45" href="https://docs.hottubapp.io/developers/api/videos/#__codelineno-1-45"></a><span class="w"> </span><span class="nt">"protocol"</span><span class="p">:</span><span class="w"> </span><span class="s2">"m3u8_native"</span><span class="p">,</span>
|
||
<a id="__codelineno-1-46" name="__codelineno-1-46" href="https://docs.hottubapp.io/developers/api/videos/#__codelineno-1-46"></a><span class="w"> </span><span class="nt">"ext"</span><span class="p">:</span><span class="w"> </span><span class="s2">"mp4"</span><span class="p">,</span>
|
||
<a id="__codelineno-1-47" name="__codelineno-1-47" href="https://docs.hottubapp.io/developers/api/videos/#__codelineno-1-47"></a><span class="w"> </span><span class="nt">"httpHeaders"</span><span class="p">:</span><span class="w"> </span><span class="p">{</span>
|
||
<a id="__codelineno-1-48" name="__codelineno-1-48" href="https://docs.hottubapp.io/developers/api/videos/#__codelineno-1-48"></a><span class="w"> </span><span class="nt">"Referer"</span><span class="p">:</span><span class="w"> </span><span class="s2">"https://www.example.com"</span>
|
||
<a id="__codelineno-1-49" name="__codelineno-1-49" href="https://docs.hottubapp.io/developers/api/videos/#__codelineno-1-49"></a><span class="w"> </span><span class="p">}</span>
|
||
<a id="__codelineno-1-50" name="__codelineno-1-50" href="https://docs.hottubapp.io/developers/api/videos/#__codelineno-1-50"></a><span class="w"> </span><span class="p">}</span>
|
||
<a id="__codelineno-1-51" name="__codelineno-1-51" href="https://docs.hottubapp.io/developers/api/videos/#__codelineno-1-51"></a><span class="w"> </span><span class="p">],</span>
|
||
<a id="__codelineno-1-52" name="__codelineno-1-52" href="https://docs.hottubapp.io/developers/api/videos/#__codelineno-1-52"></a><span class="w"> </span><span class="nt">"embed"</span><span class="p">:</span><span class="w"> </span><span class="p">{</span>
|
||
<a id="__codelineno-1-53" name="__codelineno-1-53" href="https://docs.hottubapp.io/developers/api/videos/#__codelineno-1-53"></a><span class="w"> </span><span class="nt">"source"</span><span class="p">:</span><span class="w"> </span><span class="s2">"https://www.example.com/watch?v=y0sF5xhGreA"</span><span class="p">,</span>
|
||
<a id="__codelineno-1-54" name="__codelineno-1-54" href="https://docs.hottubapp.io/developers/api/videos/#__codelineno-1-54"></a><span class="w"> </span><span class="nt">"html"</span><span class="p">:</span><span class="w"> </span><span class="s2">"<iframe src='...' width='560' height='315'></iframe>"</span><span class="p">,</span>
|
||
<a id="__codelineno-1-55" name="__codelineno-1-55" href="https://docs.hottubapp.io/developers/api/videos/#__codelineno-1-55"></a><span class="w"> </span><span class="nt">"width"</span><span class="p">:</span><span class="w"> </span><span class="mi">560</span><span class="p">,</span>
|
||
<a id="__codelineno-1-56" name="__codelineno-1-56" href="https://docs.hottubapp.io/developers/api/videos/#__codelineno-1-56"></a><span class="w"> </span><span class="nt">"height"</span><span class="p">:</span><span class="w"> </span><span class="mi">315</span>
|
||
<a id="__codelineno-1-57" name="__codelineno-1-57" href="https://docs.hottubapp.io/developers/api/videos/#__codelineno-1-57"></a><span class="w"> </span><span class="p">}</span>
|
||
<a id="__codelineno-1-58" name="__codelineno-1-58" href="https://docs.hottubapp.io/developers/api/videos/#__codelineno-1-58"></a><span class="w"> </span><span class="p">}</span>
|
||
<a id="__codelineno-1-59" name="__codelineno-1-59" href="https://docs.hottubapp.io/developers/api/videos/#__codelineno-1-59"></a><span class="w"> </span><span class="p">]</span>
|
||
<a id="__codelineno-1-60" name="__codelineno-1-60" href="https://docs.hottubapp.io/developers/api/videos/#__codelineno-1-60"></a><span class="p">}</span>
|
||
</code></pre></div>
|
||
<h2 id="field-reference">Field Reference</h2>
|
||
<h3 id="response-root-fields">Response Root Fields</h3>
|
||
<div class="md-typeset__scrollwrap"><div class="md-typeset__table"><table>
|
||
<thead>
|
||
<tr>
|
||
<th>Field</th>
|
||
<th>Type</th>
|
||
<th>Description</th>
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
<tr>
|
||
<td><code>pageInfo</code></td>
|
||
<td><code>PageInfo</code></td>
|
||
<td>Pagination and status metadata</td>
|
||
</tr>
|
||
<tr>
|
||
<td><code>items</code></td>
|
||
<td><code>Video[]</code></td>
|
||
<td>Array of video objects</td>
|
||
</tr>
|
||
</tbody>
|
||
</table></div></div>
|
||
<h3 id="pageinfo-object-fields">PageInfo Object Fields</h3>
|
||
<div class="md-typeset__scrollwrap"><div class="md-typeset__table"><table>
|
||
<thead>
|
||
<tr>
|
||
<th>Field</th>
|
||
<th>Type</th>
|
||
<th>Required</th>
|
||
<th>Description</th>
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
<tr>
|
||
<td><code>hasNextPage</code></td>
|
||
<td><code>boolean</code></td>
|
||
<td>✅</td>
|
||
<td>Whether more results are available</td>
|
||
</tr>
|
||
<tr>
|
||
<td><code>recommendations</code></td>
|
||
<td><code>string[]</code></td>
|
||
<td>⚪</td>
|
||
<td>Suggested search terms</td>
|
||
</tr>
|
||
<tr>
|
||
<td><code>error</code></td>
|
||
<td><code>string</code></td>
|
||
<td>⚪</td>
|
||
<td>Error message (e.g., "No results were found")</td>
|
||
</tr>
|
||
<tr>
|
||
<td><code>message</code></td>
|
||
<td><code>string</code></td>
|
||
<td>⚪</td>
|
||
<td>Informational message (e.g., "Showing cached results")</td>
|
||
</tr>
|
||
<tr>
|
||
<td><code>parameters</code></td>
|
||
<td><code>object</code></td>
|
||
<td>⚪</td>
|
||
<td>Additional metadata (e.g. <code>"cursor": "abc123"</code>)</td>
|
||
</tr>
|
||
</tbody>
|
||
</table></div></div>
|
||
<div class="admonition info">
|
||
<p class="admonition-title">Error vs Message</p>
|
||
<ul>
|
||
<li><strong><code>error</code></strong>: Use for actual errors that prevent normal operation (no results, API failure, invalid query)</li>
|
||
<li><strong><code>message</code></strong>: Use for informational notices
|
||
that don't indicate failure (cached results, filtered content, rate
|
||
limiting info, feature announcements)</li>
|
||
</ul>
|
||
</div>
|
||
<h3 id="video-object-fields">Video Object Fields</h3>
|
||
<div class="md-typeset__scrollwrap"><div class="md-typeset__table"><table>
|
||
<thead>
|
||
<tr>
|
||
<th>Field</th>
|
||
<th>Type</th>
|
||
<th>Required</th>
|
||
<th>Description</th>
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
<tr>
|
||
<td><code>title</code></td>
|
||
<td><code>string</code></td>
|
||
<td>✅</td>
|
||
<td>Video title</td>
|
||
</tr>
|
||
<tr>
|
||
<td><code>url</code></td>
|
||
<td><code>string</code></td>
|
||
<td>✅</td>
|
||
<td>Video source URL</td>
|
||
</tr>
|
||
<tr>
|
||
<td><code>duration</code></td>
|
||
<td><code>number</code></td>
|
||
<td>✅</td>
|
||
<td>Video length in seconds</td>
|
||
</tr>
|
||
<tr>
|
||
<td><code>channel</code></td>
|
||
<td><code>string</code></td>
|
||
<td>✅</td>
|
||
<td>Source channel/platform identifier</td>
|
||
</tr>
|
||
<tr>
|
||
<td><code>thumb</code></td>
|
||
<td><code>string</code></td>
|
||
<td>✅</td>
|
||
<td>Thumbnail image URL</td>
|
||
</tr>
|
||
<tr>
|
||
<td><code>id</code></td>
|
||
<td><code>string</code></td>
|
||
<td>⚪</td>
|
||
<td>Unique video identifier (auto-generated if not provided)</td>
|
||
</tr>
|
||
<tr>
|
||
<td><code>network</code></td>
|
||
<td><code>string</code></td>
|
||
<td>—</td>
|
||
<td>Alias for <code>channel</code> — added by the server on every response item</td>
|
||
</tr>
|
||
<tr>
|
||
<td><code>isVR</code></td>
|
||
<td><code>boolean</code></td>
|
||
<td>—</td>
|
||
<td><code>true</code> when VR content is detected from tags — added by the server</td>
|
||
</tr>
|
||
<tr>
|
||
<td><code>uploaderProfile</code></td>
|
||
<td><code>UploaderProfile</code></td>
|
||
<td>—</td>
|
||
<td>Partial uploader profile card — added by the server when a profile exists</td>
|
||
</tr>
|
||
<tr>
|
||
<td><code>views</code></td>
|
||
<td><code>number</code></td>
|
||
<td>⚪</td>
|
||
<td>View count</td>
|
||
</tr>
|
||
<tr>
|
||
<td><code>rating</code></td>
|
||
<td><code>number</code></td>
|
||
<td>⚪</td>
|
||
<td>Video percent rating score</td>
|
||
</tr>
|
||
<tr>
|
||
<td><code>uploader</code></td>
|
||
<td><code>string</code></td>
|
||
<td>⚪</td>
|
||
<td>Content creator name</td>
|
||
</tr>
|
||
<tr>
|
||
<td><code>uploaderUrl</code></td>
|
||
<td><code>string</code></td>
|
||
<td>⚪</td>
|
||
<td>Creator's profile URL</td>
|
||
</tr>
|
||
<tr>
|
||
<td><code>uploaderId</code></td>
|
||
<td><code>string</code></td>
|
||
<td>⚪</td>
|
||
<td>Unique uploader identifier</td>
|
||
</tr>
|
||
<tr>
|
||
<td><code>tags</code></td>
|
||
<td><code>string[]</code></td>
|
||
<td>⚪</td>
|
||
<td>Array of content tags (ordering is up to your server)</td>
|
||
</tr>
|
||
<tr>
|
||
<td><code>categories</code></td>
|
||
<td><code>string[]</code></td>
|
||
<td>⚪</td>
|
||
<td>Array of content categories</td>
|
||
</tr>
|
||
<tr>
|
||
<td><code>uploadedAt</code></td>
|
||
<td><code>Date|String</code></td>
|
||
<td>⚪</td>
|
||
<td>Upload date (flexible format)</td>
|
||
</tr>
|
||
<tr>
|
||
<td><code>preview</code></td>
|
||
<td><code>string</code></td>
|
||
<td>⚪</td>
|
||
<td>Preview GIF/video URL</td>
|
||
</tr>
|
||
<tr>
|
||
<td><code>formats</code></td>
|
||
<td><code>Format[]</code></td>
|
||
<td>⚪</td>
|
||
<td>Video format array</td>
|
||
</tr>
|
||
<tr>
|
||
<td><code>aspectRatio</code></td>
|
||
<td><code>number</code></td>
|
||
<td>⚪</td>
|
||
<td>Video aspect ratio (e.g., 1.78 for 16:9)</td>
|
||
</tr>
|
||
<tr>
|
||
<td><code>embed</code></td>
|
||
<td><code>EmbedData</code></td>
|
||
<td>⚪</td>
|
||
<td>Embed data for Reddit-style content</td>
|
||
</tr>
|
||
<tr>
|
||
<td><code>isLive</code></td>
|
||
<td><code>boolean</code></td>
|
||
<td>⚪</td>
|
||
<td><code>true</code> when the video is a live stream — replaces duration with a "LIVE" badge</td>
|
||
</tr>
|
||
<tr>
|
||
<td><code>liveStatus</code></td>
|
||
<td><code>string</code></td>
|
||
<td>⚪</td>
|
||
<td>yt-dlp live status: <code>"live"</code>, <code>"not_live"</code>, <code>"was_live"</code>, <code>"post_live"</code> — used alongside <code>isLive</code> for badge and availability UI</td>
|
||
</tr>
|
||
<tr>
|
||
<td><code>availability</code></td>
|
||
<td><code>string</code></td>
|
||
<td>⚪</td>
|
||
<td>Content availability hint — <code>"offline"</code> shows an unavailable badge instead of duration</td>
|
||
</tr>
|
||
</tbody>
|
||
</table></div></div>
|
||
<div class="admonition info">
|
||
<p class="admonition-title">Live & Availability Display</p>
|
||
<p>The app uses <code>isLive</code> and <code>liveStatus</code> together to determine how a video card renders:</p>
|
||
<ul>
|
||
<li><strong>Live badge</strong> shown when <code>isLive == true</code> <strong>or</strong> <code>liveStatus == "live"</code> — the duration label is hidden and replaced with a "LIVE" indicator.</li>
|
||
<li><strong>Unavailable badge</strong> shown when <code>availability == "offline"</code>, or <code>liveStatus</code> is <code>"not_live"</code> or <code>"was_live"</code> — again replacing the duration.</li>
|
||
<li><strong>Normal duration</strong> shown otherwise.</li>
|
||
</ul>
|
||
<p>During playback, the player also detects live streams from the HLS
|
||
stream itself (indefinite duration) and adjusts transport controls
|
||
accordingly — so <code>isLive</code> is not required for playback to behave correctly, but it ensures the video card UI is accurate before the stream is loaded.</p>
|
||
</div>
|
||
<h3 id="uploaderprofile-object">UploaderProfile Object</h3>
|
||
<p>Attached to each video item when a known uploader profile exists.
|
||
Used to render the uploader row on video cards without a separate API
|
||
call.</p>
|
||
<div class="md-typeset__scrollwrap"><div class="md-typeset__table"><table>
|
||
<thead>
|
||
<tr>
|
||
<th>Field</th>
|
||
<th>Type</th>
|
||
<th>Description</th>
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
<tr>
|
||
<td><code>id</code></td>
|
||
<td><code>string</code></td>
|
||
<td>Uploader identifier</td>
|
||
</tr>
|
||
<tr>
|
||
<td><code>name</code></td>
|
||
<td><code>string</code></td>
|
||
<td>Display name</td>
|
||
</tr>
|
||
<tr>
|
||
<td><code>avatar</code></td>
|
||
<td><code>string \| null</code></td>
|
||
<td>Avatar image URL (canonical)</td>
|
||
</tr>
|
||
<tr>
|
||
<td><code>videoCount</code></td>
|
||
<td><code>number</code></td>
|
||
<td>Total indexed videos</td>
|
||
</tr>
|
||
<tr>
|
||
<td><code>totalViews</code></td>
|
||
<td><code>number</code></td>
|
||
<td>Aggregated view count</td>
|
||
</tr>
|
||
</tbody>
|
||
</table></div></div>
|
||
<p>See <a href="https://docs.hottubapp.io/developers/server/#json-key-names">JSON key names</a> for camelCase vs snake_case and the legacy <code>profile_picture_url</code> avatar key.</p>
|
||
<h3 id="format-object-fields">Format Object Fields</h3>
|
||
<div class="md-typeset__scrollwrap"><div class="md-typeset__table"><table>
|
||
<thead>
|
||
<tr>
|
||
<th>Field</th>
|
||
<th>Type</th>
|
||
<th>Required</th>
|
||
<th>Description</th>
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
<tr>
|
||
<td><code>url</code></td>
|
||
<td><code>string</code></td>
|
||
<td>✅</td>
|
||
<td>Direct video stream URL</td>
|
||
</tr>
|
||
<tr>
|
||
<td><code>formatId</code></td>
|
||
<td><code>string</code></td>
|
||
<td>Auto-generated</td>
|
||
<td>Format identifier (provided or auto-generated)</td>
|
||
</tr>
|
||
<tr>
|
||
<td><code>ext</code></td>
|
||
<td><code>string</code></td>
|
||
<td>⚪</td>
|
||
<td>File extension ("mp4", "webm")</td>
|
||
</tr>
|
||
<tr>
|
||
<td><code>protocol</code></td>
|
||
<td><code>string</code></td>
|
||
<td>⚪</td>
|
||
<td>Stream protocol ("https", "m3u8_native") - important for playback</td>
|
||
</tr>
|
||
<tr>
|
||
<td><code>httpHeaders</code></td>
|
||
<td><code>object</code></td>
|
||
<td>⚪ (🔑 CDN)</td>
|
||
<td>Required headers for CDN authentication</td>
|
||
</tr>
|
||
<tr>
|
||
<td><code>height</code></td>
|
||
<td><code>number</code></td>
|
||
<td>⚪ (📱 UX)</td>
|
||
<td>Video height in pixels (240, 480, 720, 1080) - recommended for better format IDs</td>
|
||
</tr>
|
||
<tr>
|
||
<td><code>width</code></td>
|
||
<td><code>number</code></td>
|
||
<td>⚪</td>
|
||
<td>Video width in pixels</td>
|
||
</tr>
|
||
<tr>
|
||
<td><code>resolution</code></td>
|
||
<td><code>string</code></td>
|
||
<td>⚪</td>
|
||
<td>Resolution string ("720p" or "1280x720")</td>
|
||
</tr>
|
||
<tr>
|
||
<td><code>format</code></td>
|
||
<td><code>string</code></td>
|
||
<td>⚪</td>
|
||
<td>Format description</td>
|
||
</tr>
|
||
<tr>
|
||
<td><code>fps</code></td>
|
||
<td><code>number</code></td>
|
||
<td>⚪</td>
|
||
<td>Frames per second</td>
|
||
</tr>
|
||
<tr>
|
||
<td><code>quality</code></td>
|
||
<td><code>number</code></td>
|
||
<td>⚪</td>
|
||
<td>yt-dlp quality score (fallback for <code>formatId</code> generation)</td>
|
||
</tr>
|
||
<tr>
|
||
<td><code>vcodec</code></td>
|
||
<td><code>string</code></td>
|
||
<td>⚪</td>
|
||
<td>Video codec ("avc1.640020", "h264")</td>
|
||
</tr>
|
||
<tr>
|
||
<td><code>acodec</code></td>
|
||
<td><code>string</code></td>
|
||
<td>⚪</td>
|
||
<td>Audio codec ("mp4a.40.2", "aac")</td>
|
||
</tr>
|
||
<tr>
|
||
<td><code>tbr</code></td>
|
||
<td><code>number</code></td>
|
||
<td>⚪</td>
|
||
<td>Total bitrate</td>
|
||
</tr>
|
||
<tr>
|
||
<td><code>abr</code></td>
|
||
<td><code>number</code></td>
|
||
<td>⚪</td>
|
||
<td>Audio bitrate</td>
|
||
</tr>
|
||
<tr>
|
||
<td><code>vbr</code></td>
|
||
<td><code>number</code></td>
|
||
<td>⚪</td>
|
||
<td>Video bitrate</td>
|
||
</tr>
|
||
<tr>
|
||
<td><code>dynamicRange</code></td>
|
||
<td><code>string</code></td>
|
||
<td>⚪</td>
|
||
<td>Dynamic range ("SDR", "HDR")</td>
|
||
</tr>
|
||
<tr>
|
||
<td><code>aspectRatio</code></td>
|
||
<td><code>number</code></td>
|
||
<td>⚪</td>
|
||
<td>Video aspect ratio</td>
|
||
</tr>
|
||
<tr>
|
||
<td><code>filesize</code></td>
|
||
<td><code>number</code></td>
|
||
<td>⚪</td>
|
||
<td>File size in bytes</td>
|
||
</tr>
|
||
<tr>
|
||
<td><code>language</code></td>
|
||
<td><code>string</code></td>
|
||
<td>⚪</td>
|
||
<td>Audio language</td>
|
||
</tr>
|
||
<tr>
|
||
<td><code>container</code></td>
|
||
<td><code>string</code></td>
|
||
<td>⚪</td>
|
||
<td>Container format</td>
|
||
</tr>
|
||
<tr>
|
||
<td><code>downloaderOptions</code></td>
|
||
<td><code>object</code></td>
|
||
<td>⚪</td>
|
||
<td>Download configuration (defaults to 1MB chunks)</td>
|
||
</tr>
|
||
</tbody>
|
||
</table></div></div>
|
||
<div class="admonition warning">
|
||
<p class="admonition-title">CDN Authentication</p>
|
||
<p>Many premium/CDN streams require <code>httpHeaders</code> for authentication. Common headers include:</p>
|
||
<ul>
|
||
<li><code>User-Agent</code> - Required by most CDNs</li>
|
||
<li><code>Referer</code> - Required for hotlink protection</li>
|
||
<li><code>Accept</code>, <code>Accept-Language</code> - For content negotiation</li>
|
||
</ul>
|
||
</div>
|
||
<div class="admonition info">
|
||
<p class="admonition-title">Format ID Generation</p>
|
||
<p>If <code>formatId</code> is not provided, it's auto-generated in this order:</p>
|
||
<ol>
|
||
<li><code>{format}_{height}p</code> (e.g., "mp4_720p")</li>
|
||
<li><code>{format}_{resolution}</code> (e.g., "mp4_1280x720")</li>
|
||
<li><code>{format}_{quality}</code> (e.g., "mp4_2.5")</li>
|
||
<li><code>{format}</code> only</li>
|
||
</ol>
|
||
</div>
|
||
<div class="admonition tip">
|
||
<p class="admonition-title">Best Practices</p>
|
||
<ul>
|
||
<li>Only <code>url</code> is truly required - everything else is optional</li>
|
||
<li>Include <code>height</code> for meaningful format IDs and better user experience</li>
|
||
<li>Add <code>httpHeaders</code> for CDN streams that need authentication</li>
|
||
<li>Providing <code>formats</code> bypasses yt-dlp extraction (faster response)</li>
|
||
<li>Providing <code>preview</code> avoids on-device preview generation</li>
|
||
</ul>
|
||
</div></div>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<form class="md-feedback" name="feedback">
|
||
<fieldset>
|
||
<legend class="md-feedback__title">
|
||
Was this page helpful?
|
||
</legend>
|
||
<div class="md-feedback__inner">
|
||
<div class="md-feedback__list">
|
||
|
||
<button class="md-feedback__icon md-icon" type="submit" title="This page was helpful" data-md-value="1">
|
||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M20 12a8 8 0 0 0-8-8 8 8 0 0 0-8 8 8 8 0 0 0 8 8 8 8 0 0 0 8-8m2 0a10 10 0 0 1-10 10A10 10 0 0 1 2 12 10 10 0 0 1 12 2a10 10 0 0 1 10 10M10 9.5c0 .8-.7 1.5-1.5 1.5S7 10.3 7 9.5 7.7 8 8.5 8s1.5.7 1.5 1.5m7 0c0 .8-.7 1.5-1.5 1.5S14 10.3 14 9.5 14.7 8 15.5 8s1.5.7 1.5 1.5m-5 7.73c-1.75 0-3.29-.73-4.19-1.81L9.23 14c.45.72 1.52 1.23 2.77 1.23s2.32-.51 2.77-1.23l1.42 1.42c-.9 1.08-2.44 1.81-4.19 1.81"></path></svg>
|
||
</button>
|
||
|
||
<button class="md-feedback__icon md-icon" type="submit" title="This page could be improved" data-md-value="0">
|
||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M20 12a8 8 0 0 0-8-8 8 8 0 0 0-8 8 8 8 0 0 0 8 8 8 8 0 0 0 8-8m2 0a10 10 0 0 1-10 10A10 10 0 0 1 2 12 10 10 0 0 1 12 2a10 10 0 0 1 10 10m-6.5-4c.8 0 1.5.7 1.5 1.5s-.7 1.5-1.5 1.5-1.5-.7-1.5-1.5.7-1.5 1.5-1.5M10 9.5c0 .8-.7 1.5-1.5 1.5S7 10.3 7 9.5 7.7 8 8.5 8s1.5.7 1.5 1.5m2 4.5c1.75 0 3.29.72 4.19 1.81l-1.42 1.42C14.32 16.5 13.25 16 12 16s-2.32.5-2.77 1.23l-1.42-1.42C8.71 14.72 10.25 14 12 14"></path></svg>
|
||
</button>
|
||
|
||
</div>
|
||
<div class="md-feedback__note">
|
||
|
||
<div data-md-value="1" hidden="">
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
Thanks for your feedback!
|
||
</div>
|
||
|
||
<div data-md-value="0" hidden="">
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
Thanks for your feedback! Help us improve this page by
|
||
</div>
|
||
|
||
</div>
|
||
</div>
|
||
</fieldset>
|
||
</form>
|
||
|
||
|
||
|
||
</article>
|
||
</div>
|
||
|
||
|
||
<script>var target=document.getElementById(location.hash.slice(1));target&&target.name&&(target.checked=target.name.startsWith("__tabbed_"))</script>
|
||
</div>
|
||
|
||
<button type="button" class="md-top md-icon" data-md-component="top" hidden="" style="top: 64px;" tabindex="-1">
|
||
|
||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M13 20h-2V8l-5.5 5.5-1.42-1.42L12 4.16l7.92 7.92-1.42 1.42L13 8z"></path></svg>
|
||
Back to top
|
||
</button>
|
||
|
||
</main>
|
||
|
||
<link rel="stylesheet" href="%F0%9F%8E%AC%20Videos%20-%20Hot%20Tub%20Docs_files/all.min.css">
|
||
<footer class="site-footer" style="background-color: rgba(0, 0, 0, 0.5); width: 100%">
|
||
<div class="footer-content" style="
|
||
max-width: 1200px;
|
||
margin: 0 auto;
|
||
display: flex;
|
||
justify-content: space-between;
|
||
align-items: center;
|
||
">
|
||
<div class="footer-brand" style="display: flex; flex-direction: row; align-items: center; gap: 10px">
|
||
<a href="https://reddoorendeavors.com/">
|
||
<img src="%F0%9F%8E%AC%20Videos%20-%20Hot%20Tub%20Docs_files/logo.png" alt="Red Door Endeavors" style="height: 50px; padding-top: 10px; padding-bottom: 10px">
|
||
</a>
|
||
<div class="footer-copyright">© 2024 Red Door Endeavors, Inc. All rights reserved.</div>
|
||
</div>
|
||
<div class="footer-nav">
|
||
<!-- Uncomment the following lines to display the links -->
|
||
<!-- <a href="https://docs.hottubapp.io/products">Products</a>
|
||
<a href="https://docs.hottubapp.io/about">About</a>
|
||
<a href="https://docs.hottubapp.io/contact">Contact</a> -->
|
||
<div class="social-links" style="display: flex; gap: 12px">
|
||
<a href="https://github.com/hottubapp" class="social-link">
|
||
<i class="fa-brands fa-github" style="color: white; font-size: 20px"></i>
|
||
</a>
|
||
<a href="https://hottubapp.io/discord" class="social-link">
|
||
<i class="fab fa-discord" style="color: white; font-size: 20px"></i>
|
||
</a>
|
||
<a href="https://docs.hottubapp.io/cdn-cgi/l/email-protection#7e0d0b0e0e110c0a3e16110a0a0b1c1f0e0e501711" class="social-link">
|
||
<i class="fas fa-envelope" style="color: white; font-size: 20px"></i>
|
||
</a>
|
||
<a href="https://patreon.com/c1d3rdev" class="social-link">
|
||
<i class="fa-brands fa-patreon" style="color: white; font-size: 20px"></i>
|
||
</a>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</footer>
|
||
|
||
</div>
|
||
<div class="md-dialog" data-md-component="dialog">
|
||
<div class="md-dialog__inner md-typeset"></div>
|
||
</div>
|
||
|
||
|
||
|
||
|
||
<script id="__config" type="application/json">{"base": ".", "features": ["navigation.instant", "navigation.tracking", "navigation.sections", "navigation.expand", "navigation.indexes", "navigation.top", "search.suggest", "search.highlight", "toc.follow", "navigation.search", "navigation.sticky"], "search": "assets/javascripts/workers/search.973d3a69.min.js", "tags": null, "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version": "Select version"}, "version": null}</script>
|
||
|
||
|
||
<script src="%F0%9F%8E%AC%20Videos%20-%20Hot%20Tub%20Docs_files/bundle.f55a23d4.min.js"></script>
|
||
|
||
<script src="%F0%9F%8E%AC%20Videos%20-%20Hot%20Tub%20Docs_files/react.production.min.js"></script>
|
||
|
||
<script src="%F0%9F%8E%AC%20Videos%20-%20Hot%20Tub%20Docs_files/react-dom.production.min.js"></script>
|
||
|
||
<script src="%F0%9F%8E%AC%20Videos%20-%20Hot%20Tub%20Docs_files/three.min.js"></script>
|
||
|
||
<script src="%F0%9F%8E%AC%20Videos%20-%20Hot%20Tub%20Docs_files/process-polyfill.js"></script>
|
||
|
||
<script src="%F0%9F%8E%AC%20Videos%20-%20Hot%20Tub%20Docs_files/content-restrictions-video.js"></script>
|
||
|
||
<script src="%F0%9F%8E%AC%20Videos%20-%20Hot%20Tub%20Docs_files/contact-reps.js"></script>
|
||
|
||
<script src="%F0%9F%8E%AC%20Videos%20-%20Hot%20Tub%20Docs_files/home-feature-cards.js"></script>
|
||
|
||
<script src="%F0%9F%8E%AC%20Videos%20-%20Hot%20Tub%20Docs_files/demo-3d.bundle.js"></script>
|
||
|
||
<script src="%F0%9F%8E%AC%20Videos%20-%20Hot%20Tub%20Docs_files/bubble-background.js"></script>
|
||
|
||
|
||
|
||
</body></html> |