Skip to content

Python library for converting DASH manifest files to HLS format.

License

Notifications You must be signed in to change notification settings

hyugogirubato/pydash2hls

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

34 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

PyDash2HLS

License Release Latest Version

PyDash2HLS is a Python library for converting DASH (Dynamic Adaptive Streaming over HTTP) manifest files to HLS (HTTP Live Streaming) format.

Features

  • Convert MPD files to HLS format.
  • Support for remote and local MPD files.
  • Retrieve media URLs for a specific profile.
  • Handle DRM (Digital Rights Management) information in MPD files.

Installation

You can install PyDash2HLS using pip:

pip install pydash2hls

Usage

Converter Initialization

To initialize the Converter class, you can use the following methods:

Initialization from a Remote URL

from pydash2hls import Converter

# Initialize Converter from a remote URL
url = "http://example.com/manifest.mpd"
converter = Converter.from_remote(url)

Initialization from a Local File

from pydash2hls import Converter
from pathlib import Path

# Initialize Converter from a local file
file_path = Path("path/to/manifest.mpd")
converter = Converter.from_local(file_path)

Building HLS Manifest

To build an HLS manifest for a specific profile, you can use the build_hls() method:

# Build HLS manifest for a profile
profile_id = "profile1"
hls_manifest = converter.build_hls(profile_id)

Getting Media URLs

To retrieve a list of media URLs for a specific profile, you can use the media_urls() method:

# Get media URLs for a profile
profile_id = "profile1"
media_urls = converter.media_urls(profile_id)

Exceptions

The following exceptions can be raised by PyDash2HLS:

  • InvalidPath: Raised when the file path is invalid.
  • InvalidFileContent: Raised when the contents of the file are not in DASH format or are incompatible.
  • InvalidProfile: Raised when the selected profile is invalid.
  • MissingRemoteUrl: Raised when a remote file URL is required but not provided.

License

This project is licensed under the GPL v3 License.