BuzstorageBy DOHTECH
Buztransfer
Solutionsarrow_drop_down
Startups
Documentation
Pricing
Blog
Support
Login
Getting Started
  • Overview
  • Quick Start
Categories
  • API Keys
  • Buztransfer
  • Video & Streaming
  • Digital Asset Mgmt
  • Private Files & Folders
  • Media Transformations
  • Developer Experience
  • Security & Infrastructure
Media Infrastructure

Video & Streaming
Solutions.

Build professional-grade video experiences with automated transcoding, global CDN delivery, and real-time player analytics.

Media Processing Pipeline

One source, infinite output formats.

Master .mp4
HLS
4K Optimized
DASH
Adaptive HD

Global CDN Delivery

Multi-terabit edge network ensures sub-second time-to-first-frame in over 120 regions worldwide.

Adaptive Bitrate Streaming

Dynamic resolution switching ensures smooth playback on everything from spotty 3G to 8K fiber connections.

On-the-fly Transformations

Crop, watermark, or overlay dynamic assets in real-time via URL parameters. No re-rendering required.

Buffering Ratio0.02%
Viewer Latency140ms
Live

Buzstorage Media SDK

Customizable player with HLS/DASH auto-detection

iOS
Web
And
streaming-example.js
const stream = await client.media.createStream({
  source: 'input_video.mp4',
  outputs: ['hls', 'dash'],
  transform: {
    watermark: 'brand-logo.png'
  }
});

Real-time Video Transformations

When a client requests a stream with transform parameters, Buzstorage applies the transformations transparently to each video segment dynamically, without modifying the source asset.

transformation-flow.mermaid
sequenceDiagram
    participant App as Your Application
    participant Player as Video Player
    participant API as Buzstorage API

    App->>API: Generate signed streaming URLs (with watermark/bitrate params)
    API-->>App: Return signed HLS/DASH manifest URL
    App->>Player: Load manifest URL into player
    Player->>API: Fetch manifest and media segments
    API-->>Player: Stream dynamically transformed segments

API Reference

All video streaming endpoints require API key authentication. Include your credentials in every request header.

Required Headers
x-api-key: YOUR_API_KEY
x-api-secret: YOUR_API_SECRET
POST

/v1/videos/stream

Provision a signed streaming session with optional real-time transformations. Returns HLS and DASH playback URLs.

sourcerequired
string
The fileId of the uploaded and processed video
outputsrequired
('hls' | 'dash')[]
Output format(s) to provision
transform.watermark
string (URL)
Watermark image URL, applied dynamically to each video segment
const response = await fetch('https://api.buzstorage.com/v1/videos/stream', {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json',
    'x-api-key': 'YOUR_API_KEY',
    'x-api-secret': 'YOUR_API_SECRET',
  },
  body: JSON.stringify({
    source: 'file-id-from-upload',
    outputs: ['hls', 'dash'],
    transform: {
      watermark: 'https://cdn.yourapp.com/logo.png'
    }
  })
});

const { data } = await response.json();
// data.playbackUrls.hls  → signed HLS master manifest URL
// data.playbackUrls.dash → signed DASH manifest URL
Response
{
  "success": true,
  "data": {
    "id": "your-file-id",
    "outputs": ["hls", "dash"],
    "playbackUrls": {
      "hls": "https://api.buzstorage.com/v1/videos/{fileId}/master.m3u8?expiry=...&sig=...",
      "dash": "https://api.buzstorage.com/v1/videos/{fileId}/manifest.mpd?expiry=...&sig=..."
    }
  }
}
POST

/v1/videos/:fileId/playback-url

Generate a short-lived signed URL set for an already-processed video. Includes manifest, thumbnail, and storyboard URLs.

?expiresIn=3600— Optional. Seconds until expiry. Max 7 days (604800).
// Create a signed playback URL (expires in 2 hours)
const response = await fetch(
  'https://api.buzstorage.com/v1/videos/FILE_ID/playback-url?expiresIn=7200',
  {
    method: 'POST',
    headers: {
      'x-api-key': 'YOUR_API_KEY',
      'x-api-secret': 'YOUR_API_SECRET',
    }
  }
);

const { data } = await response.json();
// data.masterManifestUrl  → signed HLS URL for your player
// data.thumbnailUrl        → preview image
// data.storyboardUrl       → WebVTT for timeline scrubbing
// data.expiresAt           → ISO timestamp
Response
{
  "success": true,
  "data": {
    "fileId": "your-file-id",
    "type": "hls",
    "masterManifestUrl": "https://api.buzstorage.com/v1/videos/{fileId}/master.m3u8?expiry=...&sig=...",
    "thumbnailUrl": "https://api.buzstorage.com/v1/videos/{fileId}/thumbnail?expiry=...&sig=...",
    "storyboardUrl": "https://api.buzstorage.com/v1/videos/{fileId}/storyboard.vtt?expiry=...&sig=...",
    "storyboardImageUrl": "https://api.buzstorage.com/v1/videos/{fileId}/storyboard.jpg?expiry=...&sig=...",
    "expiresAt": "2026-06-15T12:00:00.000Z"
  }
}
GET

/v1/videos/:fileId

Fetch full video asset metadata — processing status, rendition list, and manifest paths.

Response
{
  "success": true,
  "data": {
    "id": "asset-id",
    "fileId": "your-file-id",
    "status": "ready",
    "durationSeconds": 120,
    "width": 1920,
    "height": 1080,
    "masterManifestPath": "videos/company-id/file-id/master.m3u8",
    "dashManifestPath": "videos/company-id/file-id/manifest.mpd",
    "renditions": [
      { "label": "360p",  "width": 640,  "height": 360,  "bitrateKbps": 800,  "status": "ready" },
      { "label": "720p",  "width": 1280, "height": 720,  "bitrateKbps": 2800, "status": "ready" },
      { "label": "1080p", "width": 1920, "height": 1080, "bitrateKbps": 5000, "status": "ready" }
    ]
  }
}

Delivery Routes

These routes are public but require a valid expiry and sig query string (embedded in the URLs returned by the playback-url or stream endpoints). Your player calls these automatically.

GET/v1/videos/:fileId/master.m3u8HLS master playlist — lists all quality renditionsapplication/vnd.apple.mpegurl
GET/v1/videos/:fileId/manifest.mpdDASH master manifestapplication/dash+xml
GET/v1/videos/:fileId/renditions/:label/index.m3u8Per-quality rendition playlist (label: 360p, 480p, 720p, 1080p)application/vnd.apple.mpegurl
GET/v1/videos/:fileId/renditions/:label/segments/:segmentIndividual .ts or .m4s video segmentvideo/mp2t or video/iso.segment
GET/v1/videos/:fileId/thumbnailPreview thumbnail imageimage/jpeg
GET/v1/videos/:fileId/storyboard.vttWebVTT storyboard for timeline scrubbingtext/vtt
GET/v1/videos/:fileId/storyboard.jpgSprite sheet for storyboard thumbnailsimage/jpeg

Player Integration

Use the signed masterManifestUrl with any standards-compliant player. HLS is natively supported in Safari — all other browsers need HLS.js. For DASH, use dash.js or Shaka Player.

import Hls from 'hls.js';

async function mountPlayer(videoEl, fileId) {
  const res = await fetch(`/v1/videos/${fileId}/playback-url`, {
    method: 'POST',
    headers: { 'x-api-key': KEY, 'x-api-secret': SECRET },
  });
  const { data } = await res.json();

  if (Hls.isSupported()) {
    const hls = new Hls();
    hls.loadSource(data.masterManifestUrl);
    hls.attachMedia(videoEl);
  } else {
    // Safari supports HLS natively
    videoEl.src = data.masterManifestUrl;
  }
}

On-the-fly Transformations

Append transform parameters to any signed manifest URL. The backend automatically threads them through every rendition and segment URL — your player requests transformed segments transparently, with no client-side changes needed.

watermark
string (URL)
Overlay image URL. Applied dynamically to each video segment.
// Append transform params to your signed master manifest URL
const baseUrl = data.masterManifestUrl;

const watermarkedUrl = `${baseUrl}&watermark=${
  encodeURIComponent('https://cdn.yourapp.com/logo.png')
}`;

// Pass watermarkedUrl to your player — the watermark is
// applied per-segment by the backend, no re-encoding needed.
hls.loadSource(watermarkedUrl);
LargeDataset_Scientific_v4.tar.gz
8.4 TB / 12 TB
CH-01
CH-02
CH-03
CH-04
CH-05
Transfer Rate2.4 Gbps
UDP Accelerated
74%
Time Saved vs TCP

Heavy File Transfers

Engineered for data-intensive applications. Move multi-terabyte datasets across the globe with protocols optimized for maximum throughput.

Accelerated UDP Protocol

Bypass standard TCP bottlenecks for speeds up to 100x faster on high-latency links.

Multi-part Parallel Uploads

Automatically split massive files into chunks and upload them in parallel for peak bandwidth.

Resumable Sessions

Full state persistence ensures you pick up exactly where you left off if a connection drops.

PreviousBuztransfer
NextDeployment & QUIC
BuzstorageBy DOHTECH

Distributed enterprise storage engineered for scale. Secure, zero-knowledge architecture for the modern web.

Solutions

Developers

Resources

Company

© 2026 DOHTECH SOLUTIONS GROUP | Buzstorage

PrivacyTermsDeveloper
99.9% Uptime
AES-256 Verified