3 Commits

Author SHA1 Message Date
hzrd149
398d303852 Merge pull request #92 from greenart7c3/master
Fix links to the buds folder
2026-02-02 12:24:34 -06:00
greenart7c3
bf76b16fd9 Fix links to buds folder 2026-02-02 15:11:50 -03:00
greenart7c3
6426ce273c Fix links to the buds folder 2026-02-02 15:10:26 -03:00
2 changed files with 9 additions and 9 deletions

View File

@@ -1,6 +1,6 @@
# HLS Video Formatting # HLS Video Formatting
This document explains how to format [HLS](https://datatracker.ietf.org/doc/html/rfc8216) (HTTP Live Streaming) videos to be compatible with [BUD-01](./01.md) blob retrieval. This document explains how to format [HLS](https://datatracker.ietf.org/doc/html/rfc8216) (HTTP Live Streaming) videos to be compatible with [BUD-01](../buds/01.md) blob retrieval.
## Overview ## Overview
@@ -9,7 +9,7 @@ HLS videos consist of multiple files:
- Variant playlists (`.m3u8`) that reference media segments - Variant playlists (`.m3u8`) that reference media segments
- Media segment files (typically `.ts` files) - Media segment files (typically `.ts` files)
Each file MUST be uploaded as a separate blob and referenced by its SHA256 hash using the [BUD-01](./01.md#get-sha256---get-blob) `GET /<sha256>` endpoint format. Each file MUST be uploaded as a separate blob and referenced by its SHA256 hash using the [BUD-01](../buds/01.md#get-sha256---get-blob) `GET /<sha256>` endpoint format.
## Relative Paths ## Relative Paths
@@ -58,7 +58,7 @@ cd2a98d055eef5ec3aca73bd136a40340539138da73144d589d9de5a3a52149a.ts
## Media Segments ## Media Segments
Media segment files (typically `.ts` files) MUST be uploaded as separate blobs. Each segment MUST be retrievable via the [BUD-01](./01.md#get-sha256---get-blob) `GET /<sha256>` endpoint. Media segment files (typically `.ts` files) MUST be uploaded as separate blobs. Each segment MUST be retrievable via the [BUD-01](../buds/01.md#get-sha256---get-blob) `GET /<sha256>` endpoint.
The server SHOULD set the `Content-Type` header appropriately: The server SHOULD set the `Content-Type` header appropriately:
- `.ts` files: `video/mp2t` or `video/MP2T` - `.ts` files: `video/mp2t` or `video/MP2T`
@@ -68,7 +68,7 @@ The server SHOULD set the `Content-Type` header appropriately:
When generating HLS playlists for Blossom: When generating HLS playlists for Blossom:
1. Upload each media segment as a separate blob using [BUD-02](./02.md#put-upload---upload-blob) `PUT /upload` 1. Upload each media segment as a separate blob using [BUD-02](../buds/02.md#put-upload---upload-blob) `PUT /upload`
2. Upload each variant playlist as a separate blob 2. Upload each variant playlist as a separate blob
3. Upload the master playlist as a separate blob 3. Upload the master playlist as a separate blob
4. In all playlists, use relative paths containing only the SHA256 hash (and optional file extension) of the referenced blob 4. In all playlists, use relative paths containing only the SHA256 hash (and optional file extension) of the referenced blob
@@ -88,8 +88,8 @@ Example client flow:
When serving HLS playlists, servers MUST: When serving HLS playlists, servers MUST:
1. Return the playlist content with the appropriate `Content-Type` header (`application/vnd.apple.mpegurl` or `application/x-mpegURL`) 1. Return the playlist content with the appropriate `Content-Type` header (`application/vnd.apple.mpegurl` or `application/x-mpegURL`)
2. Serve playlists via the [BUD-01](./01.md#get-sha256---get-blob) `GET /<sha256>` endpoint 2. Serve playlists via the [BUD-01](../buds/01.md#get-sha256---get-blob) `GET /<sha256>` endpoint
3. Support optional file extensions (e.g., `/<sha256>.m3u8`) as specified in [BUD-01](./01.md#get-sha256---get-blob) 3. Support optional file extensions (e.g., `/<sha256>.m3u8`) as specified in [BUD-01](../buds/01.md#get-sha256---get-blob)
When a client requests a playlist blob, the server MUST return the playlist content as-is, without modifying relative paths. The client is responsible for resolving relative paths to absolute URLs using the current server's base URL. When a client requests a playlist blob, the server MUST return the playlist content as-is, without modifying relative paths. The client is responsible for resolving relative paths to absolute URLs using the current server's base URL.

View File

@@ -26,7 +26,7 @@ If an implementation needs to add access control, it SHOULD restrict access base
## Blob Retrieval ## Blob Retrieval
The server MUST implement the `GET /<sha256>` and `HEAD /<sha256>` endpoints as defined in [BUD-01](./01.md#get-sha256---get-blob): The server MUST implement the `GET /<sha256>` and `HEAD /<sha256>` endpoints as defined in [BUD-01](../buds/01.md#get-sha256---get-blob):
1. The server MUST accept optional file extensions in the URL (e.g., `/<sha256>.pdf`) 1. The server MUST accept optional file extensions in the URL (e.g., `/<sha256>.pdf`)
2. The server MUST set appropriate `Content-Type` headers or default to `application/octet-stream` 2. The server MUST set appropriate `Content-Type` headers or default to `application/octet-stream`
@@ -60,7 +60,7 @@ When the server receives a request with proxy hints and the blob is not in the l
1. The server SHOULD attempt to retrieve the blob from the servers specified in the `xs` parameters 1. The server SHOULD attempt to retrieve the blob from the servers specified in the `xs` parameters
2. If `xs` hints fail, the server MAY attempt to retrieve the blob using the `as` parameters by: 2. If `xs` hints fail, the server MAY attempt to retrieve the blob using the `as` parameters by:
- Fetching the author's [BUD-03](./03.md) server list (`kind:10063`) - Fetching the author's [BUD-03](../buds/03.md) server list (`kind:10063`)
- Attempting to retrieve the blob from servers in the author's list - Attempting to retrieve the blob from servers in the author's list
3. If the blob is successfully retrieved, the server SHOULD: 3. If the blob is successfully retrieved, the server SHOULD:
- Cache the blob locally for future requests - Cache the blob locally for future requests
@@ -71,7 +71,7 @@ This proxy functionality allows the local cache server to act as a transparent p
## CORS Headers ## CORS Headers
The server MUST set the `Access-Control-Allow-Origin: *` header on all responses to ensure compatibility with web applications, as specified in [BUD-01](./01.md#cross-origin-headers). The server MUST set the `Access-Control-Allow-Origin: *` header on all responses to ensure compatibility with web applications, as specified in [BUD-01](../buds/01.md#cross-origin-headers).
## Use Cases ## Use Cases