Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fetchart plugin does not import cover art when import is run with move and quiet enabled #5167

Closed
mgoltzsche opened this issue Mar 29, 2024 · 3 comments

Comments

@mgoltzsche
Copy link
Contributor

mgoltzsche commented Mar 29, 2024

When I import a directory that includes a cover.jpg file into my beets library with both import.move and import.quiet set to true, the cover art is not imported.
When I disable move or quiet, it imports the cover art.

(However, when importing the cover art, the fetchart plugin does not use the cover.jpg that exists within the album source directory but fetches it from coverartarchive.org. Correspondingly, the cover.jpg file within the import source directory is not deleted after the import although move is enabled.)

Problem

Imagine I have the import options group_albums, move and quiet enabled and the following file system structure to import from:

  • /data/ytimport/albums/some artist - some album
    • 01 - First Track.opus
    • 02 - Second Track.opus
    • cover.jpg

Running this command in verbose (-vv) mode:

$ beet -vv import /data/ytimport/albums

Does not import any cover art.
The log shows that the fetchart plugin tries to lookup the cover art within the file system and that it doesn't try the other cover art sources:

$ beet -vv import /data/ytimport/albums/
user configuration: /data/beets/config.yaml
data directory: /data/beets
plugin paths: 
lastgenre: Loading canonicalization tree /usr/local/lib/python3.12/site-packages/beetsplug/lastgenre/genres-tree.yaml
fetchart: google: Disabling art source due to missing key
fetchart: lastfm: Disabling art source due to missing key
fetchart: To use Spotify as an album art source, you must install the beautifulsoup4 module. See the documentation for further details.
Sending event: pluginload
library database: /data/musiclibrary.db
library directory: /data/music
Sending event: library_opened
Sending event: import_begin
state file could not be read: [Errno 2] No such file or directory: '/data/beets/state.pickle'
Sending event: import_task_created
Sending event: import_task_created
Sending event: import_task_start
chroma: chroma: fingerprinted b'/data/ytimport/albums/Yussef Kamaal - Black Focus (Full Album Upload) [4D8YPDdsxYU]/01 - Black Focus.opus'
chroma: matched recordings ['b39a012c-ae1a-475a-bdaf-78ba6c04efc3'] on releases ['e6a5e707-7782-4258-8b22-9364629810bf', 'f5f47021-c189-42dd-89db-d64c161a8c6d', '1c06b236-d48a-4ff8-b047-7629b732f628']
chroma: chroma: fingerprinted b'/data/ytimport/albums/Yussef Kamaal - Black Focus (Full Album Upload) [4D8YPDdsxYU]/02 - Strings of Light.opus'
chroma: matched recordings ['13745be7-0fa8-421d-ae19-19df3363297d', 'aa0ca5a9-177c-4da5-89f5-a76f85fdcab6'] on releases ['e6a5e707-7782-4258-8b22-9364629810bf', 'f5f47021-c189-42dd-89db-d64c161a8c6d', '1c06b236-d48a-4ff8-b047-7629b732f628', '4aacd470-10f1-4a1a-9b1c-1451064118bd', '30618eb7-0a4c-4915-b6aa-1f844ab09c3f']
chroma: chroma: fingerprinted b'/data/ytimport/albums/Yussef Kamaal - Black Focus (Full Album Upload) [4D8YPDdsxYU]/03 - Remembrance.opus'
chroma: matched recordings ['668f1393-9e92-4d6c-8043-42d90087849f'] on releases ['e6a5e707-7782-4258-8b22-9364629810bf', 'f5f47021-c189-42dd-89db-d64c161a8c6d', '1c06b236-d48a-4ff8-b047-7629b732f628']
chroma: chroma: fingerprinted b'/data/ytimport/albums/Yussef Kamaal - Black Focus (Full Album Upload) [4D8YPDdsxYU]/04 - Yo Chavez.opus'
chroma: matched recordings ['409453fe-99d8-4bf6-9a4b-f42c9863244f', '9addff37-9730-4e99-9e90-49f76b718db3'] on releases ['e6a5e707-7782-4258-8b22-9364629810bf', 'f5f47021-c189-42dd-89db-d64c161a8c6d', '1c06b236-d48a-4ff8-b047-7629b732f628', '71d4fe14-980a-48aa-b840-18b103d3ef1d', 'b6b7c20e-be37-459a-a8ba-180497b914a5']
chroma: chroma: fingerprinted b'/data/ytimport/albums/Yussef Kamaal - Black Focus (Full Album Upload) [4D8YPDdsxYU]/05 - Ayla.opus'
chroma: matched recordings ['0553bfdf-e3a4-4a8a-b2a3-1b6ad7fd7db1'] on releases ['b154d2b7-7e52-494d-ae79-35e2241190da']
chroma: chroma: fingerprinted b'/data/ytimport/albums/Yussef Kamaal - Black Focus (Full Album Upload) [4D8YPDdsxYU]/06 - O G.opus'
chroma: matched recordings ['a07a66d0-8c8b-47f9-b043-6879e637b8e5'] on releases ['e6a5e707-7782-4258-8b22-9364629810bf', 'f5f47021-c189-42dd-89db-d64c161a8c6d', '1c06b236-d48a-4ff8-b047-7629b732f628']
chroma: chroma: fingerprinted b'/data/ytimport/albums/Yussef Kamaal - Black Focus (Full Album Upload) [4D8YPDdsxYU]/07 - Lowrider.opus'
chroma: matched recordings ['06f0f36d-bede-4d25-b7c3-f554532cba30', '11e6a293-5308-43ea-8e69-99da46d855f2', '9fd57e50-ddc1-4ab3-aa06-45975bc51cda', 'ccdbd4e2-4618-4def-bbb3-236bb1b1b07d'] on releases ['e6a5e707-7782-4258-8b22-9364629810bf', 'f5f47021-c189-42dd-89db-d64c161a8c6d', '1c06b236-d48a-4ff8-b047-7629b732f628', 'a80b3131-00f0-419f-b424-6cf4f446d79c', '3d1caabd-6309-41c2-9bd9-d5de174cf7de', '315f2a7c-350d-46c0-bd1a-3f7dd3099b1b']
chroma: chroma: fingerprinted b'/data/ytimport/albums/Yussef Kamaal - Black Focus (Full Album Upload) [4D8YPDdsxYU]/08 - Mansur s Message.opus'
chroma: matched recordings ['8eeed7d7-4bbe-42cf-810d-44848604f97c'] on releases ['e6a5e707-7782-4258-8b22-9364629810bf', 'f5f47021-c189-42dd-89db-d64c161a8c6d', '1c06b236-d48a-4ff8-b047-7629b732f628']
chroma: chroma: fingerprinted b'/data/ytimport/albums/Yussef Kamaal - Black Focus (Full Album Upload) [4D8YPDdsxYU]/09 - WingTai Drums.opus'
chroma: matched recordings ['61c1fefe-76f9-44cf-a608-448b7707d3b9'] on releases ['e6a5e707-7782-4258-8b22-9364629810bf', 'f5f47021-c189-42dd-89db-d64c161a8c6d', '1c06b236-d48a-4ff8-b047-7629b732f628']
chroma: chroma: fingerprinted b'/data/ytimport/albums/Yussef Kamaal - Black Focus (Full Album Upload) [4D8YPDdsxYU]/10 - Joint 17.opus'
chroma: matched recordings ['ef01d50c-3fc0-4291-9cd3-99e78e2302a2'] on releases ['e6a5e707-7782-4258-8b22-9364629810bf', 'f5f47021-c189-42dd-89db-d64c161a8c6d', '1c06b236-d48a-4ff8-b047-7629b732f628']
Looking up: /data/ytimport/albums/Yussef Kamaal - Black Focus (Full Album Upload) [4D8YPDdsxYU]/01 - Black Focus.opus; /data/ytimport/albums/Yussef Kamaal - Black Focus (Full Album Upload) [4D8YPDdsxYU]/02 - Strings of Light.opus; /data/ytimport/albums/Yussef Kamaal - Black Focus (Full Album Upload) [4D8YPDdsxYU]/03 - Remembrance.opus; /data/ytimport/albums/Yussef Kamaal - Black Focus (Full Album Upload) [4D8YPDdsxYU]/04 - Yo Chavez.opus; /data/ytimport/albums/Yussef Kamaal - Black Focus (Full Album Upload) [4D8YPDdsxYU]/05 - Ayla.opus; /data/ytimport/albums/Yussef Kamaal - Black Focus (Full Album Upload) [4D8YPDdsxYU]/06 - O G.opus; /data/ytimport/albums/Yussef Kamaal - Black Focus (Full Album Upload) [4D8YPDdsxYU]/07 - Lowrider.opus; /data/ytimport/albums/Yussef Kamaal - Black Focus (Full Album Upload) [4D8YPDdsxYU]/08 - Mansur s Message.opus; /data/ytimport/albums/Yussef Kamaal - Black Focus (Full Album Upload) [4D8YPDdsxYU]/09 - WingTai Drums.opus; /data/ytimport/albums/Yussef Kamaal - Black Focus (Full Album Upload) [4D8YPDdsxYU]/10 - Joint 17.opus
Tagging Yussef Kamaal - Black Focus
No album ID found.
Search terms: Yussef Kamaal - Black Focus
Album might be VA: False
Searching for MusicBrainz releases with: {'release': 'black focus', 'artist': 'yussef kamaal', 'tracks': '10'}
Requesting MusicBrainz release e6a5e707-7782-4258-8b22-9364629810bf
Sending event: mb_track_extract
Sending event: mb_track_extract
Sending event: mb_track_extract
Sending event: mb_track_extract
Sending event: mb_track_extract
Sending event: mb_track_extract
Sending event: mb_track_extract
Sending event: mb_track_extract
Sending event: mb_track_extract
Sending event: mb_track_extract
Sending event: mb_album_extract
Sending event: albuminfo_received
Candidate: Yussef Kamaal - Black Focus (e6a5e707-7782-4258-8b22-9364629810bf)
Computing track assignment...
...done.
Success. Distance: 0.07
Requesting MusicBrainz release f5f47021-c189-42dd-89db-d64c161a8c6d
Sending event: mb_track_extract
Sending event: mb_track_extract
Sending event: mb_track_extract
Sending event: mb_track_extract
Sending event: mb_track_extract
Sending event: mb_track_extract
Sending event: mb_track_extract
Sending event: mb_track_extract
Sending event: mb_track_extract
Sending event: mb_track_extract
Sending event: mb_album_extract
Sending event: albuminfo_received
Candidate: Yussef Kamaal - Black Focus (f5f47021-c189-42dd-89db-d64c161a8c6d)
Computing track assignment...
...done.
Success. Distance: 0.07
Requesting MusicBrainz release 1c06b236-d48a-4ff8-b047-7629b732f628
Sending event: mb_track_extract
Sending event: mb_track_extract
Sending event: mb_track_extract
Sending event: mb_track_extract
Sending event: mb_track_extract
Sending event: mb_track_extract
Sending event: mb_track_extract
Sending event: mb_track_extract
Sending event: mb_track_extract
Sending event: mb_track_extract
Sending event: mb_album_extract
Sending event: albuminfo_received
Candidate: Yussef Kamaal - Black Focus (1c06b236-d48a-4ff8-b047-7629b732f628)
Computing track assignment...
...done.
Success. Distance: 0.07
Requesting MusicBrainz release 8697eed4-30b1-4bfa-8e11-eec438a39840
Sending event: mb_track_extract
Sending event: mb_track_extract
Sending event: mb_track_extract
Sending event: mb_track_extract
Sending event: mb_track_extract
Sending event: mb_track_extract
Sending event: mb_track_extract
Sending event: mb_track_extract
Sending event: mb_track_extract
Sending event: mb_track_extract
Sending event: mb_track_extract
Sending event: mb_track_extract
Sending event: mb_track_extract
Sending event: mb_track_extract
Sending event: mb_track_extract
Sending event: mb_track_extract
Sending event: mb_track_extract
Sending event: mb_track_extract
Sending event: mb_track_extract
Sending event: mb_album_extract
Sending event: albuminfo_received
Candidate: Yussef Dayes - Black Classical Music (8697eed4-30b1-4bfa-8e11-eec438a39840)
Computing track assignment...
...done.
Success. Distance: 0.81
Requesting MusicBrainz release 98a6cff8-73f4-400e-8534-2f04e2ec22a3
Sending event: mb_track_extract
Sending event: mb_track_extract
Sending event: mb_track_extract
Sending event: mb_track_extract
Sending event: mb_track_extract
Sending event: mb_track_extract
Sending event: mb_track_extract
Sending event: mb_track_extract
Sending event: mb_track_extract
Sending event: mb_track_extract
Sending event: mb_track_extract
Sending event: mb_track_extract
Sending event: mb_track_extract
Sending event: mb_track_extract
Sending event: mb_track_extract
Sending event: mb_track_extract
Sending event: mb_track_extract
Sending event: mb_track_extract
Sending event: mb_track_extract
Sending event: mb_album_extract
Sending event: albuminfo_received
Candidate: Yussef Dayes - Black Classical Music (98a6cff8-73f4-400e-8534-2f04e2ec22a3)
Computing track assignment...
...done.
Success. Distance: 0.81
Requesting MusicBrainz release e6a5e707-7782-4258-8b22-9364629810bf
Sending event: mb_track_extract
Sending event: mb_track_extract
Sending event: mb_track_extract
Sending event: mb_track_extract
Sending event: mb_track_extract
Sending event: mb_track_extract
Sending event: mb_track_extract
Sending event: mb_track_extract
Sending event: mb_track_extract
Sending event: mb_track_extract
Sending event: mb_album_extract
Sending event: albuminfo_received
Requesting MusicBrainz release f5f47021-c189-42dd-89db-d64c161a8c6d
Sending event: mb_track_extract
Sending event: mb_track_extract
Sending event: mb_track_extract
Sending event: mb_track_extract
Sending event: mb_track_extract
Sending event: mb_track_extract
Sending event: mb_track_extract
Sending event: mb_track_extract
Sending event: mb_track_extract
Sending event: mb_track_extract
Sending event: mb_album_extract
Sending event: albuminfo_received
Requesting MusicBrainz release 1c06b236-d48a-4ff8-b047-7629b732f628
Sending event: mb_track_extract
Sending event: mb_track_extract
Sending event: mb_track_extract
Sending event: mb_track_extract
Sending event: mb_track_extract
Sending event: mb_track_extract
Sending event: mb_track_extract
Sending event: mb_track_extract
Sending event: mb_track_extract
Sending event: mb_track_extract
Sending event: mb_album_extract
Sending event: albuminfo_received
chroma: acoustid album candidates: 3
Sending event: albuminfo_received
Candidate: Yussef Kamaal - Black Focus (e6a5e707-7782-4258-8b22-9364629810bf)
Duplicate.
Sending event: albuminfo_received
Candidate: Yussef Kamaal - Black Focus (f5f47021-c189-42dd-89db-d64c161a8c6d)
Duplicate.
Sending event: albuminfo_received
Candidate: Yussef Kamaal - Black Focus (1c06b236-d48a-4ff8-b047-7629b732f628)
Duplicate.
Evaluating 5 candidates.

/data/ytimport/albums/Yussef Kamaal - Black Focus (Full Album Upload) [4D8YPDdsxYU]/01 - Black Focus.opus
/data/ytimport/albums/Yussef Kamaal - Black Focus (Full Album Upload) [4D8YPDdsxYU]/02 - Strings of Light.opus
/data/ytimport/albums/Yussef Kamaal - Black Focus (Full Album Upload) [4D8YPDdsxYU]/03 - Remembrance.opus
/data/ytimport/albums/Yussef Kamaal - Black Focus (Full Album Upload) [4D8YPDdsxYU]/04 - Yo Chavez.opus
/data/ytimport/albums/Yussef Kamaal - Black Focus (Full Album Upload) [4D8YPDdsxYU]/05 - Ayla.opus
/data/ytimport/albums/Yussef Kamaal - Black Focus (Full Album Upload) [4D8YPDdsxYU]/06 - O G.opus
/data/ytimport/albums/Yussef Kamaal - Black Focus (Full Album Upload) [4D8YPDdsxYU]/07 - Lowrider.opus
/data/ytimport/albums/Yussef Kamaal - Black Focus (Full Album Upload) [4D8YPDdsxYU]/08 - Mansur s Message.opus
/data/ytimport/albums/Yussef Kamaal - Black Focus (Full Album Upload) [4D8YPDdsxYU]/09 - WingTai Drums.opus
/data/ytimport/albums/Yussef Kamaal - Black Focus (Full Album Upload) [4D8YPDdsxYU]/10 - Joint 17.opus (10 items)
Sending event: import_task_before_choice
Importing as-is.
Sending event: import_task_choice
0 of 10 items replaced
Sending event: database_change
Parsed query: AndQuery([TrueQuery()])
Parsed sort: NullSort()
Parsed query: AndQuery([TrueQuery()])
Parsed sort: MultipleSort([FixedFieldSort('genre', ascending=True), FixedFieldSort('albumartist', ascending=True), FixedFieldSort('year', ascending=True), FixedFieldSort('album', ascending=True), FixedFieldSort('track', ascending=True), SmartArtistSort(), FixedFieldSort('title', ascending=True)])
Sending event: database_change
Sending event: database_change
smartplaylist: all-by-genre-album.m3u will be updated because of Yussef Kamaal - Black Focus - Black Focus
smartplaylist: all.m3u will be updated because of Yussef Kamaal - Black Focus - Black Focus
Sending event: database_change
Sending event: database_change
Sending event: database_change
Sending event: database_change
Sending event: database_change
Sending event: database_change
Sending event: database_change
Sending event: database_change
Sending event: database_change
Sending event: database_change
Sending event: database_change
Sending event: database_change
Sending event: database_change
Sending event: database_change
Sending event: database_change
Sending event: database_change
Sending event: database_change
Sending event: database_change
Sending event: database_change
lastgenre: added last.fm album genre (album): Jazz
Sending event: database_change
Sending event: database_change
Sending event: database_change
Sending event: database_change
Sending event: database_change
Sending event: database_change
Sending event: database_change
Sending event: database_change
Sending event: database_change
Sending event: database_change
Sending event: database_change
fetchart: trying source filesystem for album Yussef Kamaal - Black Focus
Parsed query: AndQuery([NoneQuery('album_id', True)])
Parsed sort: NullSort()
Parsed query: AndQuery([BooleanQuery('comp', 1, fast=True)])
Parsed sort: NullSort()
Sending event: before_item_moved
Sending event: item_moved
Sending event: database_change
Sending event: database_change
Parsed query: AndQuery([NoneQuery('album_id', True)])
Parsed sort: NullSort()
Parsed query: AndQuery([BooleanQuery('comp', 1, fast=True)])
Parsed sort: NullSort()
Sending event: before_item_moved
Sending event: item_moved
Sending event: database_change
Sending event: database_change
Parsed query: AndQuery([NoneQuery('album_id', True)])
Parsed sort: NullSort()
Parsed query: AndQuery([BooleanQuery('comp', 1, fast=True)])
Parsed sort: NullSort()
Sending event: before_item_moved
Sending event: item_moved
Sending event: database_change
Sending event: database_change
Parsed query: AndQuery([NoneQuery('album_id', True)])
Parsed sort: NullSort()
Parsed query: AndQuery([BooleanQuery('comp', 1, fast=True)])
Parsed sort: NullSort()
Sending event: before_item_moved
Sending event: item_moved
Sending event: database_change
Sending event: database_change
Parsed query: AndQuery([NoneQuery('album_id', True)])
Parsed sort: NullSort()
Parsed query: AndQuery([BooleanQuery('comp', 1, fast=True)])
Parsed sort: NullSort()
Sending event: before_item_moved
Sending event: item_moved
Sending event: database_change
Sending event: database_change
Parsed query: AndQuery([NoneQuery('album_id', True)])
Parsed sort: NullSort()
Parsed query: AndQuery([BooleanQuery('comp', 1, fast=True)])
Parsed sort: NullSort()
Sending event: before_item_moved
Sending event: item_moved
Sending event: database_change
Sending event: database_change
Parsed query: AndQuery([NoneQuery('album_id', True)])
Parsed sort: NullSort()
Parsed query: AndQuery([BooleanQuery('comp', 1, fast=True)])
Parsed sort: NullSort()
Sending event: before_item_moved
Sending event: item_moved
Sending event: database_change
Sending event: database_change
Parsed query: AndQuery([NoneQuery('album_id', True)])
Parsed sort: NullSort()
Parsed query: AndQuery([BooleanQuery('comp', 1, fast=True)])
Parsed sort: NullSort()
Sending event: before_item_moved
Sending event: item_moved
Sending event: database_change
Sending event: database_change
Parsed query: AndQuery([NoneQuery('album_id', True)])
Parsed sort: NullSort()
Parsed query: AndQuery([BooleanQuery('comp', 1, fast=True)])
Parsed sort: NullSort()
Sending event: before_item_moved
Sending event: item_moved
Sending event: database_change
Sending event: database_change
Parsed query: AndQuery([NoneQuery('album_id', True)])
Parsed sort: NullSort()
Parsed query: AndQuery([BooleanQuery('comp', 1, fast=True)])
Parsed sort: NullSort()
Sending event: before_item_moved
Sending event: item_moved
Sending event: database_change
Sending event: database_change
Sending event: database_change
Sending event: database_change
Sending event: database_change
Sending event: database_change
Sending event: database_change
Sending event: database_change
Sending event: database_change
Sending event: database_change
Sending event: database_change
Sending event: database_change
Sending event: import_task_files
state file could not be read: [Errno 2] No such file or directory: '/data/beets/state.pickle'
Sending event: album_imported
Sending event: import
Sending event: cli_exit
smartplaylist: Updating 2 smart playlists...
smartplaylist: Creating playlist all-by-genre-album.m3u
smartplaylist: Creating playlist all.m3u
Sending event: smartplaylist_update
smartplaylist: 2 playlists updated

When I disable any of the import.move or import.quiet configuration options, it imports cover art - from a non-filesystem source, though.

You can get the example data e.g. using the ytimport plugin:

beet ytimport --no-import https://www.youtube.com/watch?v=4D8YPDdsxYU

Setup

  • OS: Ubuntu 22.04 host, alpine:3.19 container
  • Python version: 3.12.2
  • beets version: 1.6.0+patches / a recent commit
  • Turning off plugins made problem go away (yes/no): indeed, it imports cover art when I specify --plugins=fetchart

My configuration (output of beet config) is:

directory: /data/music
# --------------- Main ---------------

library: /data/musiclibrary.db
paths:
    default: Albums/%title{$albumartist}/$album%aunique{}/$track $title
    singleton: Singles/%title{$artist}/$title
    comp: Compilations/$album%aunique{}/$track $title

# --------------- Plugins ---------------

plugins:
- ytimport
- chroma
- lastgenre
- fetchart
- edit
- info
- describe
- smartplaylist
- random
- duplicates
- web

ui:
    terminal_width: 160

import:
    write: yes
    copy: yes
    move: yes
    group_albums: yes
    incremental: yes
    quiet: yes
    quiet_fallback: asis
chroma:
    auto: yes
ytimport:
    directory: /data/ytimport

    import: yes
    likes: no
    max_likes: 3
    set:
        somefancyfield: 1
    min_length: 60
    max_length: 7200
    split_tracks: yes
    group_albums: yes
    reimport: no
    format: bestaudio/best
    url_file: ''
    auth_headers:
    max_length_nochapter: 900
smartplaylist:
    relative_to: /data/playlists
    playlist_dir: /data/playlists
    forward_slash: no
    playlists: [{name: all.m3u, query: ''}, {name: all-by-genre-album.m3u, query: genre+ albumartist+ year+ album+ track+ artist+ title+}]
    auto: yes
    uri_format:
    attributes: []
    prefix: REDACTED
    urlencode: no
    pretend_paths: no
    output: m3u
lastgenre:
    auto: yes
    canonical: yes
    whitelist: yes
    min_weight: 10
    count: 1
    fallback:
    source: album
    force: yes
    separator: ', '
    prefer_specific: no
    title_case: yes
web:
    host: 127.0.0.1
    port: 8337
    cors: ''
    cors_supports_credentials: no
    reverse_proxy: no
    include_paths: no
    readonly: yes
edit:
    albumfields: album albumartist
    itemfields: track title artist album
    ignore_fields: id path
duplicates:
    album: no
    checksum: ''
    copy: ''
    count: no
    delete: no
    format: ''
    full: no
    keys: []
    merge: no
    move: ''
    path: no
    tiebreak: {}
    strict: no
    tag: ''
fetchart:
    auto: yes
    minwidth: 0
    maxwidth: 0
    quality: 0
    max_filesize: 0
    enforce_ratio: no
    cautious: no
    cover_names:
    - cover
    - front
    - art
    - album
    - folder
    sources:
    - filesystem
    - coverart
    - itunes
    - amazon
    - albumart
    - cover_art_url
    store_source: no
    high_resolution: no
    deinterlace: no
    cover_format:
    google_key: REDACTED
    google_engine: 001442825323518660753:hrh5ch1gjzm
    fanarttv_key: REDACTED
    lastfm_key: REDACTED
describe:
    auto: no
mgoltzsche added a commit to mgoltzsche/beets-ytimport that referenced this issue Mar 29, 2024
Though, unfortunately the cover art file is not imported in quiet mode,
see beetbox/beets#5167
@Dr-Blank
Copy link
Contributor

It has nothing to do with move or quite

    group_albums: yes

is the culprit. well not culprit exactly because group albums does not care about folders, it is meant to be used when multiple tracks from different albums is in the same folder, and when you use that you are telling beets to group based on albums and not folder, so any images are ignored in the process. set that to no and it will "move quitely" as expected.

mgoltzsche added a commit to mgoltzsche/beets-ytimport that referenced this issue May 12, 2024
...by not grouping by albums when importing album/collection folders.
See beetbox/beets#5167
@mgoltzsche
Copy link
Contributor Author

mgoltzsche commented May 12, 2024

Ah, thanks @Dr-Blank for clarifying that. I misinterpreted the option. Disabling it makes beets import the cover.jpg files properly, indeed.

mgoltzsche added a commit to mgoltzsche/beets-ytimport that referenced this issue May 12, 2024
To avoid leaving album directories within the ytimport directory, each containing only a `cover.jpg` file.
See beetbox/beets#5167
@mgoltzsche
Copy link
Contributor Author

mgoltzsche commented May 13, 2024

However, in case of the ytimport plugin, unfortunately the cover.jpg files are still not removed from the import source directory on import, unless import.move is enabled or clutter: ['cover.jpg'] specified within the beets config. The ytimport plugin enables the import.move option temporarily when it invokes the import plugin but the fetchart plugin has read the option already on initialization and therefore ignores the config changes that are applied afterwards.

UPDATE: This is addressed by PR #5244.

mgoltzsche added a commit to mgoltzsche/beets-ytimport that referenced this issue May 13, 2024
mgoltzsche added a commit to mgoltzsche/beets that referenced this issue May 13, 2024
Defer the evaluation of the source removal options (`import.delete` and `import.move`) to the point where the fetchart plugin is actually called instead of evaluating those configuration options on plugin initialization.
This is to allow other plugins (such as the [ytimport](https://github.com/mgoltzsche/beets-ytimport/blob/v1.8.1/beetsplug/ytimport/__init__.py#L194) plugin) to invoke the import directly (within the same python process; implicitly invoking the fetchart plugin) with temporarily overwritten configuration options.

Relates to beetbox#5167 (comment)
mgoltzsche added a commit to mgoltzsche/beets that referenced this issue May 13, 2024
Defer the evaluation of the source removal options (`import.delete` and `import.move`) to the point where the fetchart plugin is actually called instead of evaluating those configuration options on plugin initialization.
This is to allow other plugins (such as the [ytimport](https://github.com/mgoltzsche/beets-ytimport/blob/v1.8.1/beetsplug/ytimport/__init__.py#L194) plugin) to invoke the import directly (within the same python process; implicitly invoking the fetchart plugin) with temporarily overwritten configuration options.

Relates to beetbox#5167 (comment)
mgoltzsche added a commit to mgoltzsche/beets that referenced this issue May 13, 2024
Defer the evaluation of the source file removal options (`import.delete` and `import.move`) to the point where the fetchart plugin is actually called instead of evaluating those configuration options on plugin initialization.
This is to allow other plugins (such as the [ytimport](https://github.com/mgoltzsche/beets-ytimport/blob/v1.8.1/beetsplug/ytimport/__init__.py#L194) plugin) to invoke the import directly (within the same python process; implicitly invoking the fetchart plugin) with temporarily overwritten configuration options.

Relates to beetbox#5167 (comment)
mgoltzsche added a commit to mgoltzsche/beets that referenced this issue May 13, 2024
Defer the evaluation of the source file removal options (`import.delete` and `import.move`) to the point where the fetchart plugin is actually called instead of only evaluating those configuration options on plugin initialization.
This is to allow other plugins (such as the [ytimport](https://github.com/mgoltzsche/beets-ytimport/blob/v1.8.1/beetsplug/ytimport/__init__.py#L194) plugin) to invoke the import directly (within the same python process; implicitly invoking the fetchart plugin) with temporarily overwritten configuration options.

Relates to beetbox#5167 (comment)
mgoltzsche added a commit to mgoltzsche/beets that referenced this issue May 13, 2024
Defer the evaluation of the source file removal options (`import.delete` and `import.move`) to the point where the fetchart plugin is actually called instead of only evaluating those configuration options on plugin initialization.
This is to allow other plugins (such as the [ytimport](https://github.com/mgoltzsche/beets-ytimport/blob/v1.8.1/beetsplug/ytimport/__init__.py#L194) plugin) to invoke the import directly (within the same python process; implicitly invoking the fetchart plugin) with temporarily overwritten configuration options.

Relates to beetbox#5167 (comment)
mgoltzsche added a commit to mgoltzsche/beets that referenced this issue May 13, 2024
Defer the evaluation of the source file removal options (`import.delete` and `import.move`) to the point where the fetchart plugin is actually called instead of only evaluating those configuration options on plugin initialization.
This is to allow other plugins (such as the [ytimport](https://github.com/mgoltzsche/beets-ytimport/blob/v1.8.1/beetsplug/ytimport/__init__.py#L194) plugin) to invoke the import directly (within the same python process; implicitly invoking the fetchart plugin) with temporarily overwritten configuration options.

Relates to beetbox#5167 (comment)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants