Keep failed HLS preflight on native path
This commit is contained in:
+31
-2
@@ -434,8 +434,20 @@ def decrypt_aes128_segment(data, key, iv_value):
|
||||
return proc.stdout
|
||||
|
||||
|
||||
def download_hls_segments(stream, input_url, target, partial, episode_number=None, episode_index=None, episode_total=None):
|
||||
input_url, playlist = hls_media_playlist(stream, input_url)
|
||||
def download_hls_segments(
|
||||
stream,
|
||||
input_url,
|
||||
target,
|
||||
partial,
|
||||
episode_number=None,
|
||||
episode_index=None,
|
||||
episode_total=None,
|
||||
playlist_text=None,
|
||||
):
|
||||
if playlist_text is None:
|
||||
input_url, playlist = hls_media_playlist(stream, input_url)
|
||||
else:
|
||||
playlist = playlist_text
|
||||
segments = parse_hls_segments(input_url, playlist)
|
||||
if not segments:
|
||||
return 1
|
||||
@@ -598,12 +610,29 @@ def download_episode(stream, target, episode_number=None, episode_index=None, ep
|
||||
episode_number=episode_number,
|
||||
episode_index=episode_index,
|
||||
episode_total=episode_total,
|
||||
playlist_text=playlist,
|
||||
)
|
||||
if code == 0:
|
||||
return 0
|
||||
return code
|
||||
except Exception as exc:
|
||||
print(f"Native HLS preflight failed: {exc}", file=sys.stderr)
|
||||
try:
|
||||
code = download_hls_segments(
|
||||
stream,
|
||||
input_url,
|
||||
target,
|
||||
partial,
|
||||
episode_number=episode_number,
|
||||
episode_index=episode_index,
|
||||
episode_total=episode_total,
|
||||
)
|
||||
if code == 0:
|
||||
return 0
|
||||
return code
|
||||
except Exception as segment_exc:
|
||||
print(f"Segment downloader failed after HLS preflight error: {segment_exc}", file=sys.stderr)
|
||||
return 1
|
||||
attempts = [
|
||||
[
|
||||
*ffmpeg_base_command(stream, input_url),
|
||||
|
||||
Reference in New Issue
Block a user