Using DEVONthink as a movie database

I’m a cineaste (a person fond of the cinema) and I wonder whether anyone here is using DEVONthink to keep track of and enter comments to all the movies you have stored on your external drives?

There are (mainly) four things I need to know: (1) where is the movie, (2) who is the director and the actors, (3) country/language and (4) date of release.

I use NeoFinder to scan my external disks and tell me where a particular movie is to be found. It does a good job, but the program doesn’t offer any slots to enter movie related information, such as the director’s and the actors’ names, not to mention interesting background infos. NeoFinder is mainly written for photographers, and accordingly you can enter location, photo-resolution and other photographic gobbledegook, all stuff which I am absolutely not interested in.

As a sort of a walk-around I save Wikipedia articles in the movie folder. The articles usually contain all what I need to know about a particular movie.

Now I’m thinking about importing my movie-Wikipedia articles into DT, perhaps creating smart groups based on countries and languages. This seems feasible.

But what’s the easiest and most straightforward way to tell DT where the movie is?

1 Like

Personally, I’d go for something like Ninox, i.e. a relational database. But then that’s where I’m coming from. Reasoning for that below, if you care for that.

It seems that NeoFinder is scriptable. You could ask it via a script run in DT where the movie is and then add the answer to this question to DT. A sample script in AppleScript:

tell application "NeoFinder"
	find "me" catalogs {"Fotos"}
	set numResults to found items amount
	repeat with i from 1 to numResults
		log complete path of (found item index i) as text
	end repeat
end tell

The same can be achieved with a JavaScript script, of course. But The property finder path does not seem to work as described, it returns only missing value in my test. So, it might be less useful than it should be.
Edit The property works just fine if the relevant volume is mounted. Found that out thanks to NeoFinder’s support.

NeoFinder’s scripting technique is described briefly online.

As to why a relational database in my opinion would be a better tool for this task:

  • Required fields: You can force yourself to enter data that are absolutely necessary (in your opinion, that is) before the database accepts a new entry. For example, you’d want to make sure that every movie has a director and a language. Then you’d define these two fields in your database as required. You could, of course, use custom metadata for that in DT, but there’s no “required” attribute for them. If you forget to enter a language, you simply forget it.
  • Redundancy: In DT, you’d have to type “Martin Scorcese” into the “director” field for every movie of this director Firstly, that’s a lot of unnecessary work. Secondly, it duplicates information unnecessarily. In a relational database, you’d have a table “Directors”, and “Martin Scorcese” would be just one entry there. In your “Movies” table, you’d simply have a reference to this entry for every movie by this director. The same goes, BTW, for actors, though that is a bit more difficult since a movie generally has more than one of those.
  • Mistakes: I, for one, would certainly make typing errors like “Martin Scrocese” when having to enter the name several times. Having it only in one place, like described before, reduces this risk and makes fixing a spelling error very simple.
  • Searchability: DT has great search functions. But they are geared more towards full text search (no offense here, it’s just what the product has been developed for). In a relational database, it’s dead simple to find all movies directed by the famous director in which Ellen Burstyn starred. Or all movies in French produced between 2015 and 2018. And so on. That might all be possible in DT, too. But I believe it is more difficult and it requires very well-formed data (read: a lot of discipline when entering them).

This is do-able using tags or custom metadata

I’m not a cineaste, but I use Devonthink to store notes on movies I’ve seen, or want to see;
or books for reading

As mentioned above, I would use Applescript to transfer the NeoFinder data into Devonthink
Documentation at Customize NeoFinder and Workflows with AppleScript

You’re right. But with the shortcomings I mentioned above. Imagine looking for a German movie with a certain director and actor, where another actor did not star. It’s feasible, but it’s getting more tedious with every search attribute, and doing things like “show me all actors sorted by the number of movies they starred in” is (I think) simply not possible in DT. I think. Not to forget that custom metadata are cross-database, so your actors and directors are unnecessarily polluting different name spaces.

tag:MV-LanguageGerman, tag:MV-Directoraaaaaaaa tag:MV-Actorbbbbbb NOT tag;MV-Actorccccccc

Required fields: You can force yourself to enter data that are absolutely necessary

I use a custom input form; driven by Applescript
It presents dropdown lists for items based on existing tags

Yeah, I know. That’s a bit like writing a Mac program in assembler. It is possible. But is it efficient? (And you did not show me the second query :wink: )

Yes, it is feasible. But it still feels like re-inventing to me. However, everybody should use the tool they feel comfortable with.


Using custom metadata Cast with a Multi-Line data type…

Hi @devonti18, to manage my YouTube videos, I only use DT as a repository (link) for relevant documents (invoices, licenses, etc.).
If you want to use your videos in an individually designed database, I can recommend the TabForms app (iOS & macOS).

Here is an example Video of my management of the videos:

Thanks to all who responded to my question.

A movie database created in FileMaker Pro or Tab Forms would be ideal … if I just could import the data directly from an online movie source, for example as tab delimited text, which then could be imported into FileMaker. Manually entering data for thousands of movies is too time consuming.

Some movie catalog software claim they can import data directly from IMDb or other online sources, thus eliminating the need for entering the information manually. I tried Movie Explorer and Coollector Movie Database, but I didn’t like them because they don’t seem customizable.

In the meantime I have found a solution which I think is good. I can create a DT movie database, temporarily drag a movie out of its folder in the Finder, then import the folder with Safari webarchives, Wikipedia articles, screenshots and text notes into DT. When that’s done, I put the movie again back into its original folder and index it in DT.

The reason why I have decided to do it this way is because Wikipedia articles, screenshots and RTF files are small in size and won’t take up much disk space, but the movies themselves tend to be very large; many are 10 GB or more!

In case the external volume is not mounted, indexing still shows me the movie’s path, and that makes it easy to find the disk in question.

Again, thanks to everyone for interesting suggestions.

While that sounds feasible, it is (in my opinion) a far cry from a “database”. At least a relational one. But if it suits your purpose, all is well.

Unrelated: I said before that NeoFinder’s finder path property didn’t work correctly. That is wrong: It does work fine if the relevant volume is mounted. Which makes sense, I guess.

Oops, I have just discovered an undesirable effect of moving indexed items to the Trash in DT. As soon as they are moved to the Trash, the originals in the Finder lose all their previously assigned Finder tags.

I am very color oriented, and after I have watched a movie I rate it with a colored tag in the Finder.

This does not only happen to colored tags, all Finder tags which an item had before the action is taken in DT are wiped out.

This is a serious drawback and needs to be fixed, I guess …


it is […] a far cry from a “database”. At least a relational one

You are absolutely right. Trying to use DT to keep track of my movies wouldn’t be a good solution if not for the Wikipedia articles. The articles are usually detailed and informative, and I can also quickly import Wikipedia articles about the main actors and the director. Thus I hope to be able to quickly access the information I need.

It sounds a bit as if you’re trying to replicate IMDB. From the term “database” in the title of your original post, I assumed that what you were looking for is a relational database. Apparently, you’re more after organizing non-structured (or weakly structured) content. For which DT might be the right tool, of course.

However, your approach (imported folder with corresponding Wikipedia articles) will probably lead to a lot of redundant information (like the same article for a director imported again and again for every single one of their movies, similar with actors). Now assume the Wikipedia article changes – are you going to (automatically?) reimport it into every folder where they appear? Or am I misunderstanding, and what you meant are the links to the relevant Wikipedia entries?

  • What version of DEVONthink are you using?
  • Where are the indexed items located in the Finder?
  • v3.8.6
  • On an external hard disk. The disk has 2 partitions, and one of them has the indexed items.

These indexed items are now no longer in DT because I deleted them from DT.


“I assumed that what you were looking for is a relational database. Apparently, you’re more after organizing non-structured (or weakly structured) content. For which DT might be the right tool”

Sorry, I should have been more specific in my first post.

“It sounds a bit as if you’re trying to replicate IMDB.”

I’m sorry if I have created that impression. I’m actually only trying to

  1. find a better tool than NeoFinder which, after having scanned my external disks, can instantly tell me where a particular movie is stored.

  2. I have stored Safari articles in webarchive format and personal notes in the same folder as the movie itself is in; NeoFinder will also scan this material but I will not be able to directly access it unless the external disk is attached to my laptop.

  3. This is where DT comes in. Importing web articles and notes into DT would make the material accessible to me all the time, so there would be no need to have the external disk plugged in.

But as you rightly say, this approach is likely to lead to a lot of redundant information. I’m not sure how I will prevent that from happening. Perhaps put all directors into one group and all actors into another group? I’ll have to experiment with that.

Or you could use something like this: Betamagic - Movie Explorer

I believe you may have missed my post here regarding Movie Explorer. :–)

Anyway, my judgement was based on the free version where ca. 90% of the features are disabled. I did not get the impression that I can seamlessly integrate online articles with Movie Explorer, but I may be wrong.

Have you used the paid pro version? And do you think it’s able to do what I want?

I believe you could use the “Personal Review and Rating” feature to store comments, which could contain a link to a Wikipedia article, or even a link to a DEVONthink entry. There is a 14 day trial, and when I had some questions while trying the demo a while back, the developer was responsive to my questions.

The Pro version of Movie Explorer is included in Setapp, so you can top up your standalone trial with the 7-day trial of that (excellent) service. I just tried using @dsh1705’s trick of storing comments in the Review field, and while it’s possible to include a URL, the field is plain-text only and so the link isn’t active. It’s an impressive app otherwise, particularly as a front end to an archive, though database customisability is limited; you can’t add user-defined fields, and it doesn’t have a field for country of origin or language.