Downloading: switched to an asynchronous API. This will require code changes for clients.
Functions download and download_to are now async, and you will need to call them from an
async context and use .await (see the example download_bbc.rs for some sample code). If you
are passing a reqwest client to DashDownloader (using with_http_client), you should now use a
standard Client built using reqwest::Client::builder(), instead of using
reqwest::blocking::Client::builder() as previously (see the example download_proxy.rs for some
sample code). Clients will need to add an explicit dependency on the tokio crate (which was
already pulled in via the reqwest crate, but implicitly).
[0.6.4] - 2023-01-14
New
Preliminary support for fetching subtitles (see function fetch_subtitles on DashDownloader).
There is support for subtitles in WebVTT format (an AdaptationSet node with a @mimeType
attribute of "text/vtt"), TTML (@mimeType of "application/ttml+xml") and SAMI (@mimeType of
"application/x-sami"). There is also some support for WVTT (binary WebVTT in a wvtt box in
fragmented MP4 container, as specified by ISO/IEC 14496-30:2014) and for STPP format (TTML in a
fragmented MP4 container). WVTT subtitles will be converted to SRT format using the MP4Box
commandline application, if it is available in the PATH.
Changed
Update dependency quick-xml to v0.27
Simplify serialization example using new version of the quick-xml crate.
[0.6.3] - 2022-12-10
Changed
Fix: xs:datetime fields such as MPD@publishTime and MPD@availabilityStartTime without a
timezone are now parsed correctly instead of triggering an error. Issue seen with YouTube DASH
manifests, reported by erg43hergeg.
[0.6.2] - 2022-11-27
Changed
Downloading: implement support for SegmentURL@mediaRange and Initialization@range using HTTP
byte range requests. This allows us to download crazy DASH manifests that misuse Twitter's CDN by
prepending dummy PNG headers to media segments
(https://twitter.com/David3141593/status/1587978423120666625).
Fixed default value for SegmentTemplate@startNumber when downloading (1 instead of 0).
Fix: an AdaptationSet may contain a SegmentList.
New
We now check that the HTTP content-type of downloaded segments corresponds to audio or video content.
New function without_content_type_checks on DashDownloader to disable these checks (may be
necessary with poorly configured HTTP servers).
Added functions keep_video and keep_audio on DashDownloader to retain video and audio
streams on disk after muxing.
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
Updates the requirements on dash-mpd to permit the latest version.
Changelog
Sourced from dash-mpd's changelog.
... (truncated)
Commits
0aad5d3
Prepare for v0.7.0 release91cff3c
Update Github CI workflows to maintained actions49b504b
Move to rt-multi-thread feature on tokio cratec4927e4
Move to an async API for download support (breaking change).e1a9b30
Prepare for 0.6.4 release648e67c
Documentation for preliminary subtitle supportf201628
Improve support for downloading subtitles. If subtitles are downloaded in WVTT71a41b7
clippy/format5224115
Use the fs-err crate for better error messages than std::fsc16da91
Allow for SAMI subtitlesDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting
@dependabot rebase
.Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)