https://github.com/egg82/fetcharr

Disclaimer: I am the developer

Long story short, after Huntarr exploded I still wanted an app that did the core of Huntarr’s job: find and fetch missing or upgradable media. I looked around for some solutions but didn’t like them for various reasons. So, I made my own.

No web UI, configured via environment variables in a similar manner to Unpackerr. It does one job and it does it (a little too) well. Even when trying a few different solutions for a few days each, Fetcharr caught a bunch of stuff they all missed almost immediately. This is likely due to the way it weights media for search.

Since you made it this far, a few notes:

  1. I did still use ChatGPT on a couple of occasions. They’re documented and entirely web UI - no agents. Anything it gave me was vetted and noted in the code before publishing.
  2. The current icon is temporary and LLM-generated. I’ve put out some feelers to pay an artist to create an icon. Waiting to hear back.
  3. It’s written in Java because that’s the language I’m most familiar with. SSL certs in Java containers can be painful but I added some code to make it as easy as Python requests or Node
  4. While it still has a skip-if-tagged-with-X feature, it doesn’t create or apply any tags. I didn’t find that portion necessary, despite other popular *arrs using it. Not sure why they do, even after developing this.
  5. Caution is advised when first using it on a large media collection. It’ll very likely pick up quite a number of things initially if you weren’t on top of things beforehand. Just make sure your pipeline is set up well, or you limit the number of searches or lengthen the amount of time between searches using the environment variables.
    • aeiou@piefed.social
      link
      fedilink
      English
      arrow-up
      22
      arrow-down
      3
      ·
      16 hours ago

      For some reason the hubub around non-AI software reminds me of produce.

      ‘Guaranteed 100% locally open-sourced, free-range, GMOAI-free code!’

        • JoeBigelow@lemmy.ca
          link
          fedilink
          English
          arrow-up
          8
          ·
          3 hours ago

          GMO’s create a societal harm, not a physiological one. Patenting a cultivar of a plant is a slippery slope, and we have already had quite a slide. In theory, if somebody works very hard to breed a new cultivar, they deserve to reap the rewards of that work and protect their creation. Okay, that makes sense. But if I have all the ingredients to breed that same cultivar, and do all the same work myself, should they be able to restrict my ability to profit? A step farther, and this is the reality we inhabit. Monsanto has created an environment where their patented corn seed is the best bet for a profitable harvest, but farmers are required to sign highly binding contracts with ridiculous stipulations. Beyond that, if a neighbor farmer dares to plant non patented seed, and the wind blows his neighbors Monsanto pollen (corn is wind pollinated) into his field and it pollinates his crop, he is now in patent violation of a company he has no business with that is now going to aggressively come after him in court. This is actually happening in the American Midwest.

      • irmadlad@lemmy.world
        link
        fedilink
        English
        arrow-up
        10
        ·
        16 hours ago

        Maybe we should have some rating system like Rated PG, or R, etc but for opensource software:

        • 100% AI
        • AI Assisted
        • Human Coded
          • Pokexpert30 🌓@jlai.lu
            link
            fedilink
            English
            arrow-up
            3
            ·
            2 hours ago

            Stealing this for my projects that are 100% human supervised. I used “vibe coded” so far but I felt I still brang a lot.

    • egg82@lemmy.worldOP
      link
      fedilink
      English
      arrow-up
      48
      ·
      20 hours ago

      it’s today’s trend! One I happen to agree with, which is nice.

      I’m trying to limit LLM exposure on this one to “as little as possible, within reason”. It’s still a tool and can be used effectively in some areas.

      • irmadlad@lemmy.world
        link
        fedilink
        English
        arrow-up
        20
        ·
        20 hours ago

        My only real conundrum with AI coding, is totally relying on AI as the dev, then releasing it for public use without really knowing what happens behind the scenes and obviously the security of said app. Now if the dev is using AI as an assistant, and the dev is knowledgeable enough to know that things are operating securely, I’m ok with it.

        • reabsorbthelight@lemmy.world
          link
          fedilink
          English
          arrow-up
          4
          ·
          3 hours ago

          Also people who think they can just vibe code without ever learning how to code for real. I’ll “vibe code”, but I’m also 10+ years experienced. I can quickly detect bullshit from the AI and I check pretty thoroughly.

          Some dentist turned vibe coder will make absolute trash

          • irmadlad@lemmy.world
            link
            fedilink
            English
            arrow-up
            2
            ·
            2 hours ago

            We have IDEs and all kinds of tools to help us code. AI is just another tool. Granted, it’s a tool that needs some heavy regulation, but a tool nonetheless.

            • Patrick@ppb.social
              link
              fedilink
              arrow-up
              3
              ·
              1 hour ago

              @irmadlad @reabsorbthelight in the case of coding also needs supervision. it would totally push to prod on friday closing time lol. But yes it can be a useful tool for certain things…n ot everything the AI companies try to tell us.

              • irmadlad@lemmy.world
                link
                fedilink
                English
                arrow-up
                1
                ·
                6 minutes ago

                n ot everything the AI companies try to tell us

                Of course not. They are sales. They are trying to maximize the profit potential to their investors. I do believe that if we could get some oversight and regulation, as much as I chafe against regulation…it’s necessary, and get past this novelty stage of AI Rice Cookers, I think AI does have a lot of potential.

                • Patrick@ppb.social
                  link
                  fedilink
                  arrow-up
                  1
                  ·
                  2 minutes ago

                  @irmadlad yep. right now it’s like the wild west and in large part they come off a snake oil salesman. But there is some truth there since for some tasks it can be helpful.

        • hzl@piefed.blahaj.zone
          link
          fedilink
          English
          arrow-up
          8
          arrow-down
          1
          ·
          17 hours ago

          Yeah, there’s a version of using AI to help with coding that’s more along the lines of cobbling together pieces from tutorials to figure out how to do something and making it fit your needs rather than just straight up asking for code and blindly adding it. It’s obviously not going to be as good as code from someone experienced who’s managed to internalize the relevant documentaion, but it’s at least informed by a human who understands what it’s doing

    • lazynooblet@lazysoci.al
      link
      fedilink
      English
      arrow-up
      14
      ·
      17 hours ago

      I expect as there is a shift to vibe coding, saying “human coded” is going to be similar to “free from artificial colours and flavours”.

  • neidu3@sh.itjust.works
    link
    fedilink
    English
    arrow-up
    50
    ·
    20 hours ago

    In this day and age, shouldn’t Huntarr be replaced by Gatherarr? You know, sustainability and all…

  • hesh@quokk.au
    link
    fedilink
    English
    arrow-up
    19
    ·
    edit-2
    18 hours ago

    Since Sonarr et al already find/upgrade missing media, how does this fit with them? Is it finding stuff they miss? Or does this replace them?

    • egg82@lemmy.worldOP
      link
      fedilink
      English
      arrow-up
      11
      ·
      20 hours ago

      That’s an interesting point. In my years of running them all I’ve always needed a third-party something to upgrade or find missing media. I don’t exactly know why the built-in systems don’t work, but they genuinely do not seem to. I’ll occasionally see a scan go off but, for some reason, nothing ever gets picked up.

      So, yeah; long story short, the built-ins don’t work and I don’t know why and this was still easier than trying to figure it out.

      Edit: if you’re curious, give Fetcharr a try and let me know if it does anything for you. It’s free and takes a couple minutes. It should be pretty immediate, if your experience ends up being anything like mine.

        • Ada@lemmy.blahaj.zone
          link
          fedilink
          English
          arrow-up
          10
          ·
          19 hours ago

          They do, but only by passively monitoring RSS feeds for new content that exceeds your current quality. They don’t do active upgrade searches unless you manually trigger them.

          The distinction is important if you imported some or all of your media library, rather than building it from scratch with the arr stack stuff. It also matters if you source some your content via providers that don’t have RSS feeds.

          • egg82@lemmy.worldOP
            link
            fedilink
            English
            arrow-up
            5
            ·
            19 hours ago

            I think you may have nailed what’s happening to my stack. I remember looking into it a couple years ago and RSS was stuck in my head but I wasn’t sure why. This tracks, and explains why active fetching works significantly better for me.

        • egg82@lemmy.worldOP
          link
          fedilink
          English
          arrow-up
          13
          ·
          20 hours ago

          honestly if they work for you then awesome! Maybe mine is misconfigured somehow or maybe I just have bad luck, but Radarr, Sonarr, Lidarr, etc have never caught everything. Once I started playing with this I realized just how much I was missing.

          Either way, if your current system works for you then I don’t usually recommend changing it. Give it a try if you want- the worst it can do it accidentally find something that could be upgraded or missing. Or if you’d rather leave your stack alone that’s perfectly fine as well.

          • exu@feditown.com
            link
            fedilink
            English
            arrow-up
            13
            ·
            19 hours ago

            Sonarr and Radarr heavily rely on quality profiles you need to define, for examples see TrashGuides.

            Your system probably needs less setup in comparison

            • egg82@lemmy.worldOP
              link
              fedilink
              English
              arrow-up
              6
              ·
              19 hours ago

              ah, yeah, that would make sense as to why these types of systems are so popular. Since I’m a devops type by trade, my arr stack lives in a couple of kubernetes clusters. I use a Configarr cronjob with a fairly customized configmap to sync the trash guides with some minor preference edits. Maybe my issue is that it’s too defined, but I think if that were the case I wouldn’t be getting any benefit out of Fetcharr. Honestly even if it weren’t the case you’d think I’d at least be picking up movies that are completely missing. I’m not sure what to blame, here, but if other people are verifying that the builtin systems work for them (as well as something like Fatcharr does) then I assume it’s a skill issue or bad luck on my part.

      • hesh@quokk.au
        link
        fedilink
        English
        arrow-up
        3
        ·
        19 hours ago

        Just to add, I didnt mean to put down this software at all – I’m always a fan of more self hosting. I just remember reading people using Huntarr alongside(?) a full *arr stack and was curious how it fits.

        • egg82@lemmy.worldOP
          link
          fedilink
          English
          arrow-up
          2
          ·
          19 hours ago

          absolutely! As with everything, try it out and see if it fits. Personally, I prefer apps that do their job well, and as few of them running as possible. If you don’t think it’ll be useful or try it out and find that it’s not, then that’s for the best. It means you’re good to go without any extra hangers-on. I tried the app as I was developing it and not only found it useful to myself, but it worked so well for me that I thought it might be useful to other people as well.

  • MalReynolds@slrpnk.net
    link
    fedilink
    English
    arrow-up
    5
    ·
    19 hours ago

    I had a quick look, I think I could find a use for it but what I’d most be interested in is a dry run spitting out a list of missing / low res / low bitrate / stereo (I much prefer 5.1+), perhaps old codec, etc. media. Like many I have my own standards for what needs to be how good and so forth.

    Ideally I could edit said list and put it back in as an active search list (perhaps chunking and prioritizing as well and iterating the process). Seems like this is 90% of the way there, any chance of an enhancement ?

    Bit reluctant to just let someone else’s code go ham on my media library without a me in the loop step.

    • egg82@lemmy.worldOP
      link
      fedilink
      English
      arrow-up
      5
      ·
      edit-2
      19 hours ago

      if you haven’t yet, I’d check out Configarr and the trash guides as a baseline to create profiles that upgrade media to a certain standard so simply hitting the search button will give you what you want. That’s likely the best option, though it could theoretically be done in Fetcharr itself.

      I don’t want to balloon the project but I had an idea early on that people would want customization if I released it, so I thought about adding a sort-of “plugin” system where Fetcharr loads jar files from a directory and they get an API to access and use as needed.

      I haven’t figured out the details yet. That’ll be another weekend, or a contribution from someone. The idea and skeleton is there, though.

      Edit: missed the dry run part. That’s a great idea! The worst that can happen is that it triggers upgrades (there’s no code to modify anything) but it’s still a reasonable ask.

      • MalReynolds@slrpnk.net
        link
        fedilink
        English
        arrow-up
        4
        ·
        19 hours ago

        I don’t want to balloon the project

        Fair cop, and no I haven’t really dived into Configarr and the trash guides (although I vaguely remember coming across them), oh joy, another rabbit hole. I do try to keep a simple stack, and what I have has served me well for years. But thanks, no need to reinvent the wheel if that handles my use case.

        Having smaller projects with specific scope that do something well and can be plugged together is always preferable to some sprawling monstrosity. Used to be called the Unix way (pipe sed into awk etc.) and could stand to be revisited today. Best of luck.

        • egg82@lemmy.worldOP
          link
          fedilink
          English
          arrow-up
          5
          ·
          18 hours ago

          glad to send someone on another Sunday rabbit hole! To be clear, Fetcharr is essentially automatically hitting the “search” button for you on a few semi-random items in your library. If your profiles are set up well, it will naturally handle the rest itself.

          That said, there is a plan-in-my-head for “plugin” support so I don’t end up shoving a bunch of stuff into one app but still allow anyone to make something they need. If profiles don’t fit your use-case then that’ll be an option at some point in the future.

          • MalReynolds@slrpnk.net
            link
            fedilink
            English
            arrow-up
            2
            ·
            14 hours ago

            So, unless I didn’t dive deep enough, Configarr / Trash guides is mostly about setting up quality profiles and media paths and so forth, something I long ago sorted out to my satisfaction.

            What I guess I was after was something to find stuff that has fallen through the cracks, highlighting stuff that doesn’t meet my standards and seeing whether I care enough to go looking for upgrades.

            Strangely there doesn’t seem to be a simple app to run ffprobe over your library and populate a database for querying video quality, maybe I’ll get around to knocking one out one day, but today is not that day.

            • egg82@lemmy.worldOP
              link
              fedilink
              English
              arrow-up
              1
              ·
              14 hours ago

              in Media Management (click Advanced) there’s an “Analyze Video Files” option to get more data about your actual files. If I remember correctly this also re-tags downloaded media with your profiles if it was mislabeled. If you already have quality profiles set up and gated (you can add profiles that look for these attributes, like 7.1 or 5.1) then you can simply hit the search button on your media and rely on the *arr app to do the rest. If you don’t want to upgrade stuff that’s already satisfactory to you then you can do the same thing with the “Cutoff Unmet” filter. Fetcharr allows you to do either of these with the new USE_CUTOFF environment variable.

              If you’re looking for ffmpeg media analysis and health checks you can also check out something like tdarr.

              • MalReynolds@slrpnk.net
                link
                fedilink
                English
                arrow-up
                2
                ·
                edit-2
                12 hours ago

                Yeah, I have “Analyze Video Files” on, doesn’t get me a list of substandard files though, just sends the arr after stuff it’s probably already not finding.

                tdarr

                Hadn’t seen the Property search in here before, might get me most of the way there. Got it around somewhere, might have to spin it back up. Maybe I can raid it’s database as well. Thanks.

    • egg82@lemmy.worldOP
      link
      fedilink
      English
      arrow-up
      14
      ·
      20 hours ago

      that’s a decent point. Not everyone knows about the Huntarr saga (Reddit link but that’s where the story broke) and what it did.

      The idea is that you’ll occasionally want to go through all your media and make sure it’s the best quality available and that nothing’s missing. New releases get published, remuxes sometimes fix issues, etc. This little CLI container goes through and periodically searches everything you connect it to, so you don’t have to sacrifice hours of your weekend doing manual hunting.

      Edit: as a couple have pointed out this is supposed to happen automatically with built-in searches. In my experience this isn’t the case but ymmv and if what you’ve got works for you then that’s great!

    • egg82@lemmy.worldOP
      link
      fedilink
      English
      arrow-up
      6
      ·
      20 hours ago

      yep! If your arr stack already does what you want then I don’t really recommend adding more to it for the sake of doing so. The issue I have (and maybe it’s a layer 8 problem) is that mine does not. At least not as well as I want. If Sonarr ever did find anything on its own I never saw it, and while developing Fetcharr I definitely grabbed a few movies I was missing. It definitely seems like I’m not alone in this issue so I think it’ll be helpful for folks.

      If you want, try it out and see if it does anything for you. If you think it’ll be helpful or a good replacement than great! If you find that you already have everything you need then that’s even better.