lxml based parser for DASH manifests (mpd files)
Project description
mpd-parser
Installation
$ python -m pip install mpd-parser
Usage
Importing
from mpd_parser.parser import Parser
parse from string
with open("path/to/file.mpd", mode="r") as manifest_file:
mpd_string = manifest_file.read()
parsed_mpd = Parser.from_string(mpd_string)
Overview
A utility to parse mpeg dash mpd files quickly This package is heavily inspired by mpegdash package the main difference is that I choose to relay on lxml for parsing, and not the standard xml library.
The decision to implement it with lxml is for two reasons:
- lxml is faster then minidom
- lxml mimics the ElementTree API which is a more pythonic approach to XMLs
mpegdash package has two distinct advantages over this package:
- it does not require third party libraries.
- it uses the classic DOM approach to parsing XML files. it is a well known standard.
Currently, the package supports parsing only, not the creation or object->string conversion.
Benchmarks
TBA
Example manifests
Taken from https://ottverse.com/free-mpeg-dash-mpd-manifest-example-test-urls/ These are what I used to test and benchmark the package.
Missing unit-tests
- tags
- attribute parsers
- full manifest testing
Contributing
TBA
Build locally
python -m build
Run pylint locally
I try to keep the pylint score above 9.
python -m pylint ./mpd_parser/
## TODO
1. ~~finish working on periods and sub tags~~
1. ~~periods~~
2. ~~adapt-sets~~
3. ~~segment bases~~
4. ~~segment lists~~
5. ~~segment templates~~
6. ~~asset ids~~
7. ~~event streams~~
8. ~~subsets~~
2. ~~create package locally~~
3. ~~test it~~
4. complete readme
1. ~~installation~~
2. ~~usage~~
3. Benchmarks
4. contributing
5. push to github
6. push package to pypi
7. add github actions
1. ~~pylint~~
2. pytest
3. build package
4. push package
1. add tokens to secrets
2. build+push to test-pypi first
3. build+push to pypi if test success
8. complete unit-tests
9. refactor tags to multiple files
10. add parsing from file
11. add parsing from URL
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for mpd_parser-0.0.3-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0cb9d14ac49451859e3cbcdae014c0dd5815816d2484c2fabf399bdae193f2e4 |
|
MD5 | fa9bf186fc71de3f02d70e12f935971f |
|
BLAKE2b-256 | 2f8e4163d5626df3c7953be68f3fa4c94c055d0b38e81e6c4121a9d1740e8f9f |