Better print for hls

This commit is contained in:
Lovi 2024-12-23 16:55:46 +01:00
parent d13c78e3d1
commit c50bbc7098
2 changed files with 19 additions and 31 deletions

View File

@ -174,17 +174,11 @@ class ContentExtractor:
# Extract available languages from the audio tracks # Extract available languages from the audio tracks
available_languages = [obj_audio.get('language') for obj_audio in self.list_available_audio] available_languages = [obj_audio.get('language') for obj_audio in self.list_available_audio]
set_language = DOWNLOAD_SPECIFIC_AUDIO set_language = DOWNLOAD_SPECIFIC_AUDIO
result = list(set(available_languages) & set(set_language)) downloadable_languages = list(set(available_languages) & set(set_language))
# Create a formatted table to display audio info console.print(f"[cyan bold]Audio:[/cyan bold] [green]Available:[/green] [purple]{', '.join(available_languages)}[/purple] | "
if len(available_languages) > 0: f"[red]Set:[/red] [purple]{', '.join(set_language)}[/purple] | "
table = Table(show_header=False, box=None) f"[yellow]Downloadable:[/yellow] [purple]{', '.join(downloadable_languages)}[/purple]")
table.add_row(f"[cyan]Available languages:", f"[purple]{', '.join(available_languages)}")
table.add_row(f"[red]Set audios:", f"[purple]{', '.join(set_language)}")
table.add_row(f"[green]Downloadable:", f"[purple]{', '.join(result)}")
console.rule("[bold green] AUDIO ", style="bold red")
console.print(table)
else: else:
console.log("[red]Can't find a list of audios") console.log("[red]Can't find a list of audios")
@ -204,17 +198,11 @@ class ContentExtractor:
# Extract available languages from the subtitles # Extract available languages from the subtitles
available_languages = [obj_subtitle.get('language') for obj_subtitle in self.list_available_subtitles] available_languages = [obj_subtitle.get('language') for obj_subtitle in self.list_available_subtitles]
set_language = DOWNLOAD_SPECIFIC_SUBTITLE set_language = DOWNLOAD_SPECIFIC_SUBTITLE
result = list(set(available_languages) & set(set_language)) downloadable_languages = list(set(available_languages) & set(set_language))
# Create a formatted table to display subtitle info console.print(f"[cyan bold]Subtitle:[/cyan bold] [green]Available:[/green] [purple]{', '.join(available_languages)}[/purple] | "
if len(available_languages) > 0: f"[red]Set:[/red] [purple]{', '.join(set_language)}[/purple] | "
table = Table(show_header=False, box=None) f"[yellow]Downloadable:[/yellow] [purple]{', '.join(downloadable_languages)}[/purple]")
table.add_row(f"[cyan]Available languages:", f"[purple]{', '.join(available_languages)}")
table.add_row(f"[red]Set subtitles:", f"[purple]{', '.join(set_language)}")
table.add_row(f"[green]Downloadable:", f"[purple]{', '.join(result)}")
console.rule("[bold green] SUBTITLE ", style="bold red")
console.print(table)
else: else:
console.log("[red]Can't find a list of subtitles") console.log("[red]Can't find a list of subtitles")
@ -239,19 +227,18 @@ class ContentExtractor:
logging.info(f"M3U8 index selected: {self.m3u8_index}, with resolution: {video_res}") logging.info(f"M3U8 index selected: {self.m3u8_index}, with resolution: {video_res}")
# Create a formatted table to display video info # Create a formatted table to display video info
table = Table(show_header=False, box=None) console.print(f"[cyan bold]Video:[/cyan bold] [green]Available resolutions:[/green] [purple]{', '.join(list_available_resolution)}[/purple] | "
table.add_row(f"[cyan]Available resolutions:", f"[purple]{', '.join(list_available_resolution)}") f"[yellow]Downloadable:[/yellow] [purple]{video_res[0]}x{video_res[1]}[/purple]")
table.add_row(f"[green]Downloadable:", f"[purple]{video_res[0]}x{video_res[1]}")
if self.codec is not None: if self.codec is not None:
if config_manager.get_bool("M3U8_CONVERSION", "use_codec"): if config_manager.get_bool("M3U8_CONVERSION", "use_codec"):
table.add_row(f"[green]Codec:", f"([green]'v'[white]: [yellow]{self.codec.video_codec_name}[white] ([green]b[white]: [yellow]{self.codec.video_bitrate // 1000}k[white]), [green]'a'[white]: [yellow]{self.codec.audio_codec_name}[white] ([green]b[white]: [yellow]{self.codec.audio_bitrate // 1000}k[white]))") codec_info = (f"[green]v[/green]: [yellow]{self.codec.video_codec_name}[/yellow] "
f"([green]b[/green]: [yellow]{self.codec.video_bitrate // 1000}k[/yellow]), "
f"[green]a[/green]: [yellow]{self.codec.audio_codec_name}[/yellow] "
f"([green]b[/green]: [yellow]{self.codec.audio_bitrate // 1000}k[/yellow])")
else: else:
table.add_row(f"[green]Codec:", "[purple]copy") codec_info = "[cyan]copy[/cyan]"
console.print(f"[bold green]Codec:[/bold green] {codec_info}")
console.rule("[bold green] VIDEO ", style="bold red")
console.print(table)
print("")
# Fix the URL if it does not include the full protocol # Fix the URL if it does not include the full protocol
if "http" not in self.m3u8_index: if "http" not in self.m3u8_index:
@ -268,7 +255,8 @@ class ContentExtractor:
else: else:
logging.error("[download_m3u8] Can't find a valid m3u8 index") logging.error("[download_m3u8] Can't find a valid m3u8 index")
raise ValueError("Invalid m3u8 index URL") raise ValueError("Invalid m3u8 index URL")
print("")
class DownloadTracker: class DownloadTracker:
def __init__(self, path_manager: PathManager): def __init__(self, path_manager: PathManager):

View File

@ -5,7 +5,7 @@
"log_to_file": true, "log_to_file": true,
"show_message": true, "show_message": true,
"clean_console": true, "clean_console": true,
"root_path": "D:\\StreamingDownload\\Downloads", "root_path": "Video",
"movie_folder_name": "Movie", "movie_folder_name": "Movie",
"serie_folder_name": "TV", "serie_folder_name": "TV",
"map_episode_name": "%(tv_name)_S%(season)E%(episode)_%(episode_name)", "map_episode_name": "%(tv_name)_S%(season)E%(episode)_%(episode_name)",