I want to have a mirror of my local music collection on my server, and a script that periodically updates the server to, well, mirror my local collection.

But crucially, I want to convert all lossless files to lossy, preferably before uploading them.

That’s the one reason why I can’t just use git - or so I believe.

I also want locally deleted files to be deleted on the server.

Sometimes I even move files around (I believe in directory structure) and again, git deals with this perfectly. If it weren’t for the lossless-to-lossy caveat.

It would be perfect if my script could recognize that just like git does, instead of deleting and reuploading the same file to a different location.

My head is spinning round and round and before I continue messing around with find and scp it’s time to ask the community.

I am writing in bash but if some python module could help with it I’m sure I could find my way around it.

TIA


additional info:

  • Not all files in the local collection are lossless. A variety of formats.
  • The purpose of the remote is for listening/streaming with various applications
  • The lossy version is for both reducing upload and download (streaming) bandwidth. On mobile broadband FLAC tends to buffer a lot.
  • The home of the collection (and its origin) is my local machine.
  • The local machine cannot act as a server
  • A_norny_mousse@feddit.orgOP
    link
    fedilink
    arrow-up
    2
    ·
    2 days ago

    It is the wrong tool for what you want, because it would be wasteful of resources.

    I’m actually coming round to this.

    I guess rsync can be told to remove removed files on the destination, too?

    Then I’d just exclude the lossless file extensions, and deal with them differently.

    • who@feddit.org
      link
      fedilink
      English
      arrow-up
      2
      ·
      2 days ago

      I guess rsync can be told to remove removed files on the destination, too?

      Yes. The --delete family of options are relevant here.