Skip to content

Commit

Permalink
Was not able to use the initialization from a DASH segment_list (#47)
Browse files Browse the repository at this point in the history
* Was not able to use the initialization from a DASH segment_list

* Check if initialization in DASH has attribute range
  • Loading branch information
Hollander-1908 authored Mar 26, 2023
1 parent 33a9c30 commit d894e5b
Showing 1 changed file with 9 additions and 4 deletions.
13 changes: 9 additions & 4 deletions devine/core/manifests/dash.py
Original file line number Diff line number Diff line change
Expand Up @@ -410,12 +410,17 @@ def download_track(
elif segment_list is not None:
init_data = None
initialization = segment_list.find("Initialization")
if initialization:
if initialization is not None:
source_url = initialization.get("sourceURL")
if source_url is None:
source_url = rep_base_url

res = session.get(source_url)
if initialization.get("range"):
headers = {"Range": f"bytes={initialization.get('range')}"}
else:
headers = None

res = session.get(url=source_url, headers=headers)
res.raise_for_status()
init_data = res.content
track_kid = track.get_key_id(init_data)
Expand Down Expand Up @@ -468,13 +473,13 @@ def download_segment(filename: str, segment: tuple[str, Optional[str]]) -> int:
try:
if segment_range:
# aria2(c) doesn't support byte ranges, let's use python-requests (likely slower)
r = session.get(
res = session.get(
url=segment_uri,
headers={
"Range": f"bytes={segment_range}"
}
)
r.raise_for_status()
res.raise_for_status()
segment_save_path.parent.mkdir(parents=True, exist_ok=True)
segment_save_path.write_bytes(res.content)
else:
Expand Down

0 comments on commit d894e5b

Please sign in to comment.