# Videohati > Video hosting for developers and teams — upload, process, protect, embed, measure. Arabic-first player and docs. ## Docs - [What is Videohati](https://docs.videohati.com/md/en/index.md): Videohati hosts your videos, prepares them to play smoothly everywhere, and lets you show them on your own site behind a protected player. - [How it works](https://docs.videohati.com/md/en/how-it-works.md): The plain-language tour of Videohati — from uploading a file to a viewer watching it, plus test mode, protection, and what you can measure. - [Quickstart](https://docs.videohati.com/md/en/quickstart.md): From an account to your first played video — create a project, get a test key, upload a file, wait until it is ready, and play it. - [Concepts](https://docs.videohati.com/md/en/concepts.md): The core ideas behind Videohati — account, project, API key, video states, playback session, webhooks, and watermarking — each in plain words. - [Guide: Upload and play your first video](https://docs.videohati.com/md/en/guides/upload-and-play.md): Install @videohati/node, upload a file in chunks, wait until it is ready, and create a playback session — end to end. - [Guide: Embed a player in a Next.js 15 app](https://docs.videohati.com/md/en/guides/embed-nextjs.md): Install @videohati/react, create a playback session on the server, and render the player in a client component — with RTL support. - [Guide: Integrate Videohati into a Laravel 11 project](https://docs.videohati.com/md/en/guides/integrate-laravel.md): Install the videohati/laravel package, configure your key, upload a video, create a playback session, and embed the player in a Blade view. - [Guide: Embed on any site (plain HTML, WordPress, any CMS)](https://docs.videohati.com/md/en/guides/embed-html.md): Play a Videohati video on a plain HTML page, in WordPress, or in any CMS by pasting one script tag and a mount element. - [Guide: Receive events with webhooks](https://docs.videohati.com/md/en/guides/webhooks.md): Register a webhook endpoint, verify the signature, and react to Videohati events like a video becoming ready. - [Guide: Protect your videos](https://docs.videohati.com/md/en/guides/protect-videos.md): Use short-lived sessions, a referrer allowlist, and a viewer watermark to deter copying and trace leaks. - [SDKs overview](https://docs.videohati.com/md/en/sdks/index.md): Pick the right Videohati client library — Node.js, React, Laravel, or the web player — and understand where each one runs. - [Node.js SDK](https://docs.videohati.com/md/en/sdks/node.md): Official @videohati/node SDK — create a client, upload video, create playback sessions, manage webhooks, and handle errors from a Node.js server. - [React SDK](https://docs.videohati.com/md/en/sdks/react.md): Official @videohati/react SDK — the VideohatiPlayer component plus upload, metadata, and webhook-delivery hooks for React 18+ and Next.js. - [Laravel SDK](https://docs.videohati.com/md/en/sdks/laravel.md): Official videohati/laravel SDK — install, configure, upload video, create playback sessions, verify webhooks, and embed the player from a Laravel app. - [Player](https://docs.videohati.com/md/en/sdks/player.md): Official @videohati/player — the framework-free web player. Embed it with a script tag or install it from npm, then drive it with a small imperative API. - [API reference](https://docs.videohati.com/md/en/api/index.md): Every Videohati REST endpoint, with a live playground. - [Errors](https://docs.videohati.com/md/en/api/errors.md): The error envelope, status-code map, and shared error codes. - [Events](https://docs.videohati.com/md/en/api/events.md): Webhook event names, the delivery envelope, and signature verification. - [AI assistants](https://docs.videohati.com/md/en/ai/index.md): Machine-readable docs and a copy-paste context block so an AI coding assistant writes correct Videohati code — llms.txt, per-page markdown, and setup for Claude Code, Codex, opencode, and Cursor. - [Guides](https://docs.videohati.com/md/en/guides/index.md): End-to-end guides for common Videohati workflows. - [Guide: Stream security](https://docs.videohati.com/md/en/guides/stream-security.md): Restrict which sites can embed your videos, block hotlinking, and require signed tokens on every embed. - [Health probe](https://docs.videohati.com/md/en/api/operations/get-health.md): Health probe - [This OpenAPI document](https://docs.videohati.com/md/en/api/operations/get-open-api-spec.md): This OpenAPI document - [Create an anonymous playback session for a shared video](https://docs.videohati.com/md/en/api/playback/playback-embed-sessions-create.md): Create an anonymous playback session for a shared video - [Public metadata for a shared video](https://docs.videohati.com/md/en/api/playback/playback-public-video-get.md): Public metadata for a shared video - [Create a playback session](https://docs.videohati.com/md/en/api/playback/playback-sessions-create.md): Create a playback session - [Create a video in `uploading` state](https://docs.videohati.com/md/en/api/videos/videos-create.md): Create a video in `uploading` state - [Soft-delete a video](https://docs.videohati.com/md/en/api/videos/videos-delete.md): Soft-delete a video - [Get a video with upload and encoding detail](https://docs.videohati.com/md/en/api/videos/videos-get.md): Get a video with upload and encoding detail - [List videos](https://docs.videohati.com/md/en/api/videos/videos-list.md): List videos - [Remove the custom thumbnail](https://docs.videohati.com/md/en/api/videos/videos-reset-thumbnail.md): Remove the custom thumbnail - [Set a custom thumbnail](https://docs.videohati.com/md/en/api/videos/videos-set-thumbnail.md): Set a custom thumbnail - [Update a video's visibility](https://docs.videohati.com/md/en/api/videos/videos-update.md): Update a video's visibility - [Abort a multipart upload](https://docs.videohati.com/md/en/api/videos/videos-upload-abort.md): Abort a multipart upload - [Complete a multipart upload](https://docs.videohati.com/md/en/api/videos/videos-upload-complete.md): Complete a multipart upload - [Start (or resume) a multipart upload](https://docs.videohati.com/md/en/api/videos/videos-upload-start.md): Start (or resume) a multipart upload - [Register a webhook endpoint](https://docs.videohati.com/md/en/api/webhooks/webhook-endpoints-create.md): Register a webhook endpoint - [Delete a webhook endpoint](https://docs.videohati.com/md/en/api/webhooks/webhook-endpoints-delete.md): Delete a webhook endpoint - [Get a webhook endpoint](https://docs.videohati.com/md/en/api/webhooks/webhook-endpoints-get.md): Get a webhook endpoint - [List webhook endpoints](https://docs.videohati.com/md/en/api/webhooks/webhook-endpoints-list.md): List webhook endpoints - [List delivery attempts](https://docs.videohati.com/md/en/api/webhooks/webhook-endpoints-list-deliveries.md): List delivery attempts - [Reopen a circuit-broken endpoint](https://docs.videohati.com/md/en/api/webhooks/webhook-endpoints-reopen.md): Reopen a circuit-broken endpoint - [Rotate a webhook endpoint secret](https://docs.videohati.com/md/en/api/webhooks/webhook-endpoints-rotate-secret.md): Rotate a webhook endpoint secret - [Send a test event](https://docs.videohati.com/md/en/api/webhooks/webhook-endpoints-send-test.md): Send a test event - [Update a webhook endpoint](https://docs.videohati.com/md/en/api/webhooks/webhook-endpoints-update.md): Update a webhook endpoint - [Webhook event delivery](https://docs.videohati.com/md/en/api/webhooks/webhook-event-delivery.md): Webhook event delivery