From fa2258009461ba817b766150a11547f794c86d96 Mon Sep 17 00:00:00 2001 From: Kieran Eglin Date: Wed, 27 Nov 2024 09:41:53 -0800 Subject: [PATCH] Renamed column; added format options and tests --- .../downloading/quality_option_builder.ex | 47 ++++++++++++------ lib/pinchflat/profiles/media_profile.ex | 4 +- priv/repo/erd.png | Bin 448411 -> 448558 bytes ...72054_add_audio_lang_to_media_profiles.exs | 2 +- .../download_option_builder_test.exs | 1 - .../quality_option_builder_test.exs | 39 ++++++++++++++- 6 files changed, 73 insertions(+), 20 deletions(-) diff --git a/lib/pinchflat/downloading/quality_option_builder.ex b/lib/pinchflat/downloading/quality_option_builder.ex index b7edc8f..1884502 100644 --- a/lib/pinchflat/downloading/quality_option_builder.ex +++ b/lib/pinchflat/downloading/quality_option_builder.ex @@ -1,19 +1,31 @@ defmodule Pinchflat.Downloading.QualityOptionBuilder do + @moduledoc """ + A standalone builder module for building quality-related options for yt-dlp to download media. + + Currently exclusively used in DownloadOptionBuilder since this logic is too complex to just + place in the main module. + """ + alias Pinchflat.Settings alias Pinchflat.Profiles.MediaProfile - # TODO: test - def build(%MediaProfile{preferred_resolution: :audio, media_container: container}) do + @doc """ + Builds the quality-related options for yt-dlp to download media based on the given media profile + + Includes things like container, preferred format/codec, and audio track options. + """ + def build(%MediaProfile{preferred_resolution: :audio, media_container: container} = media_profile) do acodec = Settings.get!(:audio_codec_preference) [ :extract_audio, format_sort: "+acodec:#{acodec}", - audio_format: container || "best" - ] ++ build_format_string(nil) + audio_format: container || "best", + format: build_format_string(media_profile) + ] end - def build(%MediaProfile{preferred_resolution: resolution_atom, media_container: container}) do + def build(%MediaProfile{preferred_resolution: resolution_atom, media_container: container} = media_profile) do vcodec = Settings.get!(:video_codec_preference) acodec = Settings.get!(:audio_codec_preference) {resolution_string, _} = resolution_atom |> Atom.to_string() |> Integer.parse() @@ -21,22 +33,27 @@ defmodule Pinchflat.Downloading.QualityOptionBuilder do [ # Since Plex doesn't support reading metadata from MKV remux_video: container || "mp4", - format_sort: "res:#{resolution_string},+codec:#{vcodec}:#{acodec}" - ] ++ build_format_string(nil) + format_sort: "res:#{resolution_string},+codec:#{vcodec}:#{acodec}", + format: build_format_string(media_profile) + ] end - # TODO: pass in the entire media profile once we have the language preference column - # TODO: test - # TODO: Set to ba/b if it's audio-only - defp build_format_string(language_preference) do - if language_preference do - ["bestvideo+bestaudio[#{build_format_modifier(language_preference)}]/bestvideo*+bestaudio/best"] + defp build_format_string(%MediaProfile{preferred_resolution: :audio, audio_track: audio_track}) do + if audio_track do + "bestaudio[#{build_format_modifier(audio_track)}]/bestaudio/best" else - ["bestvideo*+bestaudio/best"] + "bestaudio/best" + end + end + + defp build_format_string(%MediaProfile{audio_track: audio_track}) do + if audio_track do + "bestvideo+bestaudio[#{build_format_modifier(audio_track)}]/bestvideo*+bestaudio/best" + else + "bestvideo*+bestaudio/best" end end - # TODO: test defp build_format_modifier("original"), do: "format_note*=original" defp build_format_modifier("default"), do: "format_note*=(default)" # This uses the carat to anchor the language to the beginning of the string diff --git a/lib/pinchflat/profiles/media_profile.ex b/lib/pinchflat/profiles/media_profile.ex index 0d156e9..8c9c61d 100644 --- a/lib/pinchflat/profiles/media_profile.ex +++ b/lib/pinchflat/profiles/media_profile.ex @@ -26,7 +26,7 @@ defmodule Pinchflat.Profiles.MediaProfile do sponsorblock_categories shorts_behaviour livestream_behaviour - audio_lang + audio_track preferred_resolution media_container redownload_delay_days @@ -66,7 +66,7 @@ defmodule Pinchflat.Profiles.MediaProfile do # See `build_format_clauses` in the Media context for more. field :shorts_behaviour, Ecto.Enum, values: ~w(include exclude only)a, default: :include field :livestream_behaviour, Ecto.Enum, values: ~w(include exclude only)a, default: :include - field :audio_lang, :string + field :audio_track, :string field :preferred_resolution, Ecto.Enum, values: ~w(4320p 2160p 1080p 720p 480p 360p audio)a, default: :"1080p" field :media_container, :string, default: nil diff --git a/priv/repo/erd.png b/priv/repo/erd.png index cb4dc3cdbe33cc1fb7155f9a3fcc3ad985cae41e..74613c14935137345d9e92d343a6a1e09940af95 100644 GIT binary patch delta 23610 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