From b2de1e6aa6f4c0929f288396a47030986a26108f Mon Sep 17 00:00:00 2001 From: Kieran Eglin Date: Tue, 30 Jan 2024 11:02:18 -0800 Subject: [PATCH] Updated video metadata parser to extract the title --- .../media_client/backends/yt_dlp/metadata_parser.ex | 1 + .../media_client/backends/yt_dlp/metadata_parser_test.exs | 6 ++++++ test/pinchflat/media_client/video_downloader_test.exs | 7 ++++--- 3 files changed, 11 insertions(+), 3 deletions(-) diff --git a/lib/pinchflat/media_client/backends/yt_dlp/metadata_parser.ex b/lib/pinchflat/media_client/backends/yt_dlp/metadata_parser.ex index 56318c2..be7f8ab 100644 --- a/lib/pinchflat/media_client/backends/yt_dlp/metadata_parser.ex +++ b/lib/pinchflat/media_client/backends/yt_dlp/metadata_parser.ex @@ -17,6 +17,7 @@ defmodule Pinchflat.MediaClient.Backends.YtDlp.MetadataParser do """ def parse_for_media_item(metadata) do %{ + title: metadata["title"], video_filepath: metadata["filepath"], metadata: %{ client_response: metadata diff --git a/test/pinchflat/media_client/backends/yt_dlp/metadata_parser_test.exs b/test/pinchflat/media_client/backends/yt_dlp/metadata_parser_test.exs index df09220..7bbcb18 100644 --- a/test/pinchflat/media_client/backends/yt_dlp/metadata_parser_test.exs +++ b/test/pinchflat/media_client/backends/yt_dlp/metadata_parser_test.exs @@ -30,6 +30,12 @@ defmodule Pinchflat.MediaClient.Backends.YtDlp.MediaParserTest do assert String.ends_with?(result.video_filepath, ".mkv") end + test "it extracts the title", %{metadata: metadata} do + result = Parser.parse_for_media_item(metadata) + + assert result.title == "Trying to Wheelie Without the Rear Brake" + end + test "it returns the metadata as a map", %{metadata: metadata} do result = Parser.parse_for_media_item(metadata) diff --git a/test/pinchflat/media_client/video_downloader_test.exs b/test/pinchflat/media_client/video_downloader_test.exs index b1bbd0a..77b2c44 100644 --- a/test/pinchflat/media_client/video_downloader_test.exs +++ b/test/pinchflat/media_client/video_downloader_test.exs @@ -10,7 +10,7 @@ defmodule Pinchflat.MediaClient.VideoDownloaderTest do setup do media_item = Repo.preload( - media_item_fixture(%{video_filepath: nil}), + media_item_fixture(%{title: nil, video_filepath: nil}), [:metadata, channel: :media_profile] ) @@ -33,9 +33,10 @@ defmodule Pinchflat.MediaClient.VideoDownloaderTest do {:ok, render_metadata(:media_metadata)} end) - assert is_nil(media_item.video_filepath) + assert %{video_filepath: nil, title: nil} = media_item assert {:ok, updated_media_item} = VideoDownloader.download_for_media_item(media_item) - assert is_binary(updated_media_item.video_filepath) + assert updated_media_item.video_filepath + assert updated_media_item.title end test "it saves the metadata to the database", %{media_item: media_item} do