0044-00000410

Updated at:

Problem description

The request is not authenticated by using a signed URL.

Causes

GetSignedPlaylist obtains the signed URL of each Transport Stream (TS) file in an M3U8 playlist for HTTP Live Streaming (HLS). This API requires URL-based signatures for authentication — the signature must be embedded in the query string, not in the Authorization header.

Examples

The following request triggers this error because the signature is passed in the Authorization header instead of the URL:

GET /private/playlist.m3u8?x-oss-process=hls/sign HTTP/1.1
Date: GMT Date
Host: BucketName.oss.aliyuncs.com
Authorization: OSS2 AccessKeyId:44CF9590006BF252F707, AdditionalHeaders:host, Signature:n7ICNZqamWxtgueWilwL9my3ScJ0qXKGLzn0XHORmI0=
x-oss-hls-sign-token: aSI78fe****78TYOst

Solutions

Remove the Authorization header and embed the signature parameters in the URL query string:

GET /private/playlist.m3u8?x-oss-process=hls/sign&OSSAccessKeyId=xxxxx&Expires=1470971863&Signature=*** HTTP/1.1
Date: GMT Date
Host: BucketName.oss.aliyuncs.com
x-oss-hls-sign-token: aSI78fe****78TYOst

The signature is embedded in the URL, so no Authorization header is needed. The key query parameters are:

ParameterDescription
OSSAccessKeyIdYour AccessKey ID
ExpiresUnix timestamp after which the signed URL expires
SignatureThe computed signature string

For details on constructing a signed URL, see Add signatures to URLs.

References

Create HLS streams based on OSS