Updated video downloader to use full URL; improved docs (#35)
This commit is contained in:
parent
927560beb6
commit
3b94b269d9
4 changed files with 22 additions and 17 deletions
|
|
@ -11,19 +11,21 @@ defmodule Pinchflat.Media.MediaItem do
|
|||
alias Pinchflat.Media.MediaMetadata
|
||||
alias Pinchflat.Media.MediaItemSearchIndex
|
||||
|
||||
@allowed_fields ~w(
|
||||
title
|
||||
media_id
|
||||
description
|
||||
original_url
|
||||
livestream
|
||||
media_downloaded_at
|
||||
media_filepath
|
||||
subtitle_filepaths
|
||||
thumbnail_filepath
|
||||
metadata_filepath
|
||||
source_id
|
||||
)a
|
||||
@allowed_fields [
|
||||
# these fields are captured on indexing
|
||||
:title,
|
||||
:media_id,
|
||||
:description,
|
||||
:original_url,
|
||||
:livestream,
|
||||
:source_id,
|
||||
# these fields are captured on download
|
||||
:media_downloaded_at,
|
||||
:media_filepath,
|
||||
:subtitle_filepaths,
|
||||
:thumbnail_filepath,
|
||||
:metadata_filepath
|
||||
]
|
||||
@required_fields ~w(title original_url livestream media_id source_id)a
|
||||
|
||||
schema "media_items" do
|
||||
|
|
|
|||
|
|
@ -32,7 +32,7 @@ defmodule Pinchflat.MediaClient.VideoDownloader do
|
|||
item_with_preloads = Repo.preload(media_item, [:metadata, source: :media_profile])
|
||||
media_profile = item_with_preloads.source.media_profile
|
||||
|
||||
case download_for_media_profile(media_item.media_id, media_profile, backend) do
|
||||
case download_for_media_profile(media_item.original_url, media_profile, backend) do
|
||||
{:ok, parsed_json} ->
|
||||
parser = metadata_parser(backend)
|
||||
|
||||
|
|
|
|||
|
|
@ -19,7 +19,8 @@ defmodule Pinchflat.MediaClient.VideoDownloaderTest do
|
|||
|
||||
describe "download_for_media_item/3" do
|
||||
test "it calls the backend runner", %{media_item: media_item} do
|
||||
expect(YtDlpRunnerMock, :run, fn _url, _opts, ot ->
|
||||
expect(YtDlpRunnerMock, :run, fn url, _opts, ot ->
|
||||
assert url == media_item.original_url
|
||||
assert ot == "after_move:%()j"
|
||||
|
||||
{:ok, render_metadata(:media_metadata)}
|
||||
|
|
|
|||
|
|
@ -10,12 +10,14 @@ defmodule Pinchflat.MediaFixtures do
|
|||
Generate a media_item.
|
||||
"""
|
||||
def media_item_fixture(attrs \\ %{}) do
|
||||
media_id = Faker.String.base64(12)
|
||||
|
||||
{:ok, media_item} =
|
||||
attrs
|
||||
|> Enum.into(%{
|
||||
media_id: Faker.String.base64(12),
|
||||
media_id: media_id,
|
||||
title: Faker.Commerce.product_name(),
|
||||
original_url: "https://www.youtube.com/channel/#{Faker.String.base64(12)}",
|
||||
original_url: "https://www.youtube.com/watch?v=#{media_id}",
|
||||
livestream: false,
|
||||
media_filepath: "/video/#{Faker.File.file_name(:video)}",
|
||||
source_id: SourcesFixtures.source_fixture().id
|
||||
|
|
|
|||
Loading…
Reference in a new issue