TagStudio icon indicating copy to clipboard operation
TagStudio copied to clipboard

[Feature Request]: Integrations with domain-specific file managers

Open ryanwwest opened this issue 1 year ago • 2 comments

Checklist

  • [X] I am using an up-to-date version.
  • [X] I have read the documentation.
  • [X] I have searched existing issues.

Description

Disclaimer: this is much more an idea for a long-term vision, than a single FR. Still a 'request' per se, or RFC.

Solution

TagStudio is unique in that it will support any type of file. This makes it a great companion or even replacement to Windows File Explorer / Mac Finder etc. But there are many more domain-specific programs that also manage files (potentially without modifying directory structures), and for those domains offer a greater set of specific features (including opening/editing files). Here are some active, popular, and open-source domain-specific file managers:

  • Jellyfin - play and organize music and videos into playlists, TV show lists, music genres/artists, etc.
  • Immich - view and organize your photos
  • KOReader - read, annotate, and organize most document files (PDF/EPUB/HTML and much more) across all mobile devices and some desktops (web-based options and annotation syncing possible)
  • VS Code / Codium - primarily a generic text editor and developer IDE (via extensions), but often use for basic file management within a specific project workspace
  • Obsidian - Markdown editor focused on Personal Knowledge Management. Not actually open-source, but free and has a huge open-source plugin community.
  • audiobookshelf - play and manage audiobook files
  • Many others for organizing files for image editing, creating art, managing scanned paper documents... the list goes on.

Each of these will ultimately offer more refined features in their specific domain than TagStudio will or should attempt to do, which is fine. But each of these domain-specific file managers also offers some sort of integration with their default system file explorer, e.g. reveal the current file in Finder for Obsidian or VS Code. These are usually quite limited actions, so to truly access any of the benefits of those file managers, you must interact with the files within the programs themselves, which has limits.

It would be very cool if TagStudio could effectively replace Explorer/Finder for these instances, but offer a much richer integration with the file and tag management that those file managers offer. This would differ greatly by the domain-specific file manager, but here are some ideas:

  • Jellyfin already auto-populates and organizes files related to movies and TV shows. One TV Show may actually consist of several directories of mp4 video files, srt subtitles, jpg covers, and more. Jellyfin also allows changing metadata for shows and songs. A TagStudio integration (e.g., plugin) could be aware of this Jellyfin metadata (via perhaps a Jellyfin-plugin-specific set of tags) and show this metadata inside TagStudio UI, potentially allow changing of the data, and potentially offer links to open the file via its corresponding Jellyfin page.
  • Obsidian supports and tracks tags in files, which could be shown in TagStudio when in a details/list file view.
  • KOReader also allows custom metadata to be set on files, particularly when a PDF file contains an unhelpful autogenerated Title (separate from filename) and users want to add a more descriptive one or add comments at a file level. It also stores annotations of text from documents (originally via annoying sidecar files but I contributed a new, alternative hash-based method). The existence of these metadata/annotations could be displayed in TagStudio.
  • All tags and collections created to organize photos in Immich could be visible and editable in TagStudio, and potentially vice versa

A plugin system might be the most effective way to handle these types of integrations as otherwise that would be too much for just CyanVoxel/@TagStudioDev - maybe the core dev team supports 1-2 official 'plugin' integrations to the most useful/universal other managers like VS Code or Jellyfin, then those can be also serve as reference implementations for other developers to then add unofficial integrations.

The point of this issue is to get others' opinions on this general idea to add richer support to other domain-specific file managers with TagStudio as a richer Finder replacement to unify them.

There are lots of issues with this—for example, do you sync tag and any other 'attribute' information about files and cache them in TagStudio's DB and risk out-of-sync mismatches, or do you require the domain-specific program to be open and have its own corresponding plugin? Another is that the tag/attribute structure of each program will vary widely, requiring a pretty general and extendable format in TagStudio to accommodate many types. But I think solutions could be found with time. I also haven't read too deeply into this project yet - if this strays too far from the central vision, I'd love to know.

Alternatives

No response

ryanwwest avatar Aug 22 '24 22:08 ryanwwest

This makes it a great companion or even replacement to Windows File Explorer / Mac Finder

Companion for sure. Replacement I don't think so. TagStudio will have fantastic tagging capabilities. Something I wanted for my own QMV, but deemed it too hard to implement and I kept and will be keeping only simple tagging. But I don't think TagStudio can replace traditional file explorers/browsers. Folders despite their shortcomings are most widely used in every OS. Spacedrive is closer to be a replacement for file explorer or finder, but it doesn't and probably won't have such powerful tags like TagStudio. Though if some godlike being could one day merge those two projects it would be something out of this world.

A plugin system might be the most effective way to handle these types of integrations

Plugin support is already planned from what I was told: https://github.com/TagStudioDev/TagStudio/issues/47 I'll definitely be making my own integration for using with QMV since that would be the easiest way to quickstart it because TagStudio can access the files automatically and I can't have anything like that with vanilla JavaScript (file import doesn't pass along the folder and you need that to display the file later)

Another is that the tag/attribute structure of each program will vary widely, requiring a pretty general and extendable format in TagStudio to accommodate many types

As for me I definitely will not be using the same structure that TagStudio uses. Especially the example with Mario's overalls. I don't even have nested tags so it will be simplified to just a list of tags without any relations. Would make the search less precise, but it will at least work with QMV.

Many others for organizing files for image editing, creating art, managing scanned paper documents... the list goes on.

Oh yeah, the list goes on and on and on and on... and it never ends it seems. I heard about those programs you listed before, but had no idea they also allow tagging files. So another 5 new programs to add to my TagsResearch collection. Pain.

Qronikarz avatar Aug 23 '24 19:08 Qronikarz

Regarding macOS, I would also like to see integration with Finder tags, Spotlight comments, and extended metadata.

bitbalancer avatar Sep 05 '24 01:09 bitbalancer