djdembeck / Audnexus.bundle

An Audnexus client proof of concept for Plex, providing rich author and audiobook data. Developed in Python, offering enhanced user experiences via Plex's legacy plugin agent system.
GNU General Public License v3.0
480 stars 21 forks source link

Manually setting/overiding fetched metadata using a sidecar metadata metadata.yaml or .nfo file in a audiobook's folder #93

Closed trustosas closed 1 year ago

trustosas commented 1 year ago

Title says it all. Currently I can't add (what is in my opinion) a missing subtitle to a file's album metadata field without breaking matching by the agent and losing all the precious metadata the agent was supposed to bring. This solution would deal with edge cases without breaking functionality on other files with correctly fetched metadata. For a sample spec of what a metadata.yaml file would look like: https://github.com/Neurrone/beets-audible#importing-non-audible-content

djdembeck commented 1 year ago

Sidecar data is entirely outside the scope of this plugin. The plug-in is intended to use upstream metadata, not local metadata.

trustosas commented 1 year ago

That's understandable enough. How do you deal with instances like the one I mentioned? Or am I alone in this?

djdembeck commented 1 year ago

I don't understand. The agent isn't matching when you add a subtitle? Why do you need a subtitle in the metadata and not in the plex title?

trustosas commented 1 year ago

Sorry, I assumed that the album field was what was displayed as the Plex title.

I've already added the subtitle to the title field within the metadata, but still Plex doesn't use the provided title field or even the image I've embedded. I want to override the Plex title with the 'title' field and the image with the high quality one I've embedded. Everything else should stay the same i.e as the agent provided. Here's what the metadata of the file looks like:

ffprobe version 4.2.7-0ubuntu0.1 Copyright (c) 2007-2022 the FFmpeg developers
  built with gcc 9 (Ubuntu 9.4.0-1ubuntu1~20.04.1)
  configuration: --prefix=/usr --extra-version=0ubuntu0.1 --toolchain=hardened --libdir=/usr/lib/x86_64-linux-gnu --incdir=/usr/include/x86_64-linux-gnu --arch=amd64 --enable-gpl --disable-stripping --enable-avresample --disable-filter=resample --enable-avisynth --enable-gnutls --enable-ladspa --enable-libaom --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libcodec2 --enable-libflite --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libgme --enable-libgsm --enable-libjack --enable-libmp3lame --enable-libmysofa --enable-libopenjpeg --enable-libopenmpt --enable-libopus --enable-libpulse --enable-librsvg --enable-librubberband --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libssh --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx265 --enable-libxml2 --enable-libxvid --enable-libzmq --enable-libzvbi --enable-lv2 --enable-omx --enable-openal --enable-opencl --enable-opengl --enable-sdl2 --enable-libdc1394 --enable-libdrm --enable-libiec61883 --enable-nvenc --enable-chromaprint --enable-frei0r --enable-libx264 --enable-shared
  libavutil      56. 31.100 / 56. 31.100
  libavcodec     58. 54.100 / 58. 54.100
  libavformat    58. 29.100 / 58. 29.100
  libavdevice    58.  8.100 / 58.  8.100
  libavfilter     7. 57.100 /  7. 57.100
  libavresample   4.  0.  0 /  4.  0.  0
  libswscale      5.  5.100 /  5.  5.100
  libswresample   3.  5.100 /  3.  5.100
  libpostproc    55.  5.100 / 55.  5.100
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x55b8e9b7c5c0] stream 0, timescale not set
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '/content/drive/MyDrive/audiobooks/Jon Kabat-Zinn/Falling Awake/01 - Falling Awake_ How to Practice Mindfulness in Everyday Life.m4a':
  Metadata:
    major_brand     : isom
    minor_version   : 512
    compatible_brands: isomiso2mp41
    creation_time   : 1970-01-01T00:00:00.000000Z
    title           : Falling Awake: How to Practice Mindfulness in Everyday Life
    artist          : Jon Kabat-Zinn, Jon Kabat-Zinn
    composer        : Jon Kabat-Zinn
    album           : Falling Awake
    genre           : Health & Wellness/Relationships, Parenting & Personal Development/Religion & Spirituality/Alternative & Complementary Medicine/Meditation/Personal Development/Personal Success/Spirituality
    track           : 1/1
    disc            : 1/1
    date            : 2018-08-07
    compilation     : 0
    encoder         : Lavf58.29.100
    LANGUAGE        : English
    ORIGINAL YEAR   : 2018-08-07
    LABEL           : Hachette Audio
    publisher       : Hachette Audio
    SUBTITLE        : How to Practice Mindfulness in Everyday Life
    media_type      : 2
    sort_album_artist: 
    sort_artist     : 
    sort_composer   : 
    grouping        : 
    album_artist    : Jon Kabat-Zinn
    sort_album      : Falling Awake - How to Practice Mindfulness in Everyday Life
    comment         : <p><b>Think you have no time for mindfulness? Think again. </b></p> <p><b>"Thoughtful and provocative.... The relevance of this work is unquestionable, as it leaves us inspired and optimistic that true healing really is possible" (Sharon Salzberg). </b>
                    : 
  Duration: 05:10:18.98, start: 0.000000, bitrate: 72 kb/s
    Chapter #0:0: start 0.000000, end 20.332000
    Metadata:
      title           : Opening Credits
    Chapter #0:1: start 20.332000, end 1450.136000
    Metadata:
      title           : Foreword
    Chapter #0:2: start 1450.136000, end 1525.330000
    Metadata:
      title           : Part 1: The Sensory World: Your One Wild and Precious Life
    Chapter #0:3: start 1525.330000, end 2310.900000
    Metadata:
      title           : The Mystery of the Senses and the Spell of the Sensuous
    Chapter #0:4: start 2310.900000, end 3070.100000
    Metadata:
      title           : Seeing
    Chapter #0:5: start 3070.100000, end 3491.780000
    Metadata:
      title           : Being Seen
    Chapter #0:6: start 3491.780000, end 3853.727000
    Metadata:
      title           : Hearing
    Chapter #0:7: start 3853.727000, end 4671.487000
    Metadata:
      title           : Soundscape
    Chapter #0:8: start 4671.487000, end 5177.914000
    Metadata:
      title           : Airscape
    Chapter #0:9: start 5177.914000, end 5977.888000
    Metadata:
      title           : Touchscape
    Chapter #0:10: start 5977.888000, end 6365.243000
    Metadata:
      title           : In Touch with Your Skin
    Chapter #0:11: start 6365.243000, end 6900.974000
    Metadata:
      title           : Smellscape
    Chapter #0:12: start 6900.974000, end 7730.251000
    Metadata:
      title           : Tastescape
    Chapter #0:13: start 7730.251000, end 8089.371000
    Metadata:
      title           : Mindscape
    Chapter #0:14: start 8089.371000, end 8661.743000
    Metadata:
      title           : Nowscape
    Chapter #0:15: start 8661.743000, end 8735.236000
    Metadata:
      title           : Part 2: Embracing Formal Practice: Tasting Mindfulness
    Chapter #0:16: start 8735.236000, end 10036.364000
    Metadata:
      title           : Lying Down Meditations
    Chapter #0:17: start 10036.364000, end 11444.608000
    Metadata:
      title           : Sitting Meditations
    Chapter #0:18: start 11444.608000, end 11839.858000
    Metadata:
      title           : Standing Meditations
    Chapter #0:19: start 11839.858000, end 12453.747000
    Metadata:
      title           : Walking Meditations
    Chapter #0:20: start 12453.747000, end 13223.535000
    Metadata:
      title           : Yoga
    Chapter #0:21: start 13223.535000, end 13705.256000
    Metadata:
      title           : Just Knowing
    Chapter #0:22: start 13705.256000, end 13997.177000
    Metadata:
      title           : Just Hearing
    Chapter #0:23: start 13997.177000, end 14331.684000
    Metadata:
      title           : Just Breathing
    Chapter #0:24: start 14331.684000, end 16042.762000
    Metadata:
      title           : Lovingkindness Meditation
    Chapter #0:25: start 16042.762000, end 16519.886000
    Metadata:
      title           : Am I Doing It Right?
    Chapter #0:26: start 16519.886000, end 17261.903000
    Metadata:
      title           : Common Obstacles to Practice
    Chapter #0:27: start 17261.903000, end 18511.147000
    Metadata:
      title           : Supports for Your Practice
    Chapter #0:28: start 18511.147000, end 18618.983000
    Metadata:
      title           : End Credits
    Stream #0:0(und): Audio: aac (LC) (mp4a / 0x6134706D), 22050 Hz, mono, fltp, 70 kb/s (default)
    Metadata:
      creation_time   : 2023-03-16T10:10:33.000000Z
      handler_name    : SoundHandler
    Stream #0:1: Video: mjpeg (Baseline), yuvj420p(pc, bt470bg/unknown/unknown), 2400x2400 [SAR 1:1 DAR 1:1], 90k tbr, 90k tbn, 90k tbc (attached pic)
    Stream #0:2(und): Data: bin_data (text / 0x74786574)
    Metadata:
      creation_time   : 2023-03-16T14:56:52.000000Z
Unsupported codec with id 100359 for input stream 2

As you can see here Audible didn't provide the subtitle data even though it's on the book cover. I updated the 'title' and added 'SUBTITLE' manually. But audnexus.bundle seems to be getting the title from the data it has matched as the amended/appended subtitle doesn't reflect in the Plex title after editing. I updated the metadata before sending the file to Plex. Here, only the title from Audible appears.

I'm fairly new to Plex and trying to get how it works.

djdembeck commented 1 year ago

No, this is a cloud agent, so it doesn't use any data from the file for Plex. It only uses album name or file name for searching. Also, I would recommend removing your screenshot since it contains an IP address.