Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/mfisher911/movies-to-dayone
Look up movie details and store as Day One Journal entries
https://github.com/mfisher911/movies-to-dayone
Last synced: 3 months ago
JSON representation
Look up movie details and store as Day One Journal entries
- Host: GitHub
- URL: https://github.com/mfisher911/movies-to-dayone
- Owner: mfisher911
- Created: 2020-11-28T20:56:15.000Z (almost 4 years ago)
- Default Branch: main
- Last Pushed: 2023-07-09T23:00:19.000Z (over 1 year ago)
- Last Synced: 2024-05-16T02:39:25.424Z (6 months ago)
- Language: Python
- Size: 22.5 KB
- Stars: 1
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
- project-awesome - mfisher911/movies-to-dayone - Look up movie details and store as Day One Journal entries (Python)
README
# Movies to DayOne
Problem: from 2003 to 2014, I kept track of movies I watched in an
OrgMode file. By 2014, I wanted to do this with a more mobile-first
approach, so I started tracking them in the [Day
One](https://dayoneapp.com) journal (which ended up getting a template
managed by an iOS Workflow/Shortcut).I captured the following attributes:
- Date Watched
- Title -- as shown by IMDb, for instance: 28 Days Later... (2002)
- Where -- viewing location (theater name or perhaps media, like
"VHS")
- Score -- integer rating, 1-5
- New -- Boolean -- was this first time I saw it?When I translated this to DayOne, I wanted to expand to match the
current Day One entry template, which is something like this:28 Days Later... (2002) # title
5/5 # rating
IMDb summary
-- IMDb linkIn Day One, I use tags for easier filtering: this entry would be
tagged "5/5" and "Movies". If it was a first viewing, it also would be
tagged "new".## Data (cleaning) Requirements
I wanted to look up the IMDb summaries and URLs based on the titles. I
found a web service, the [OMDb API](http://www.omdbapi.com), that made
this substantially easier, although not perfect.Day One can also store the geographic coordinates of the entry
location. Since I had theater names, I wanted to find them (where
possible: some theaters closed since I went).I converted the Org Mode file to a CSV and walked through the data,
looking up the IMDb and location information as I went. I stored the
results in a SQLite database, with `movies_to_db.py`.## Outcome
I had roughly 1,300 entries in the Org Mode file (not all were
unique), but the OMDb API limited free use to 1,000 queries a day, so
I did my lookups over a weekend.If a movie has a non-English original name, I like to store that.
There were several instances where a title I stored (via copy/paste
from IMDb into the file) couldn't be found. I could generally find the
titles by doing other web searches and then find the IMDb pages.There were also a handful of movies where the title search I did
through OMDb API yielded a documentary segment about the movie instead
of the actual movie, so I had to do some manual cleanup
(`clean_db.py`).Finally, I loaded the historic entries into a new Day One journal,
using `db_to_dayone.py`. After that, I was frequently able to use the
Day One map tool to zoom to the specific theater locations and add
back in theater names, using Day One's affiliation with Foursquare.## Regrets
I should have been more careful to write out HTTPS URLs in the journal
entries with `movies_to_db.py`. I must have looked at an old entry
instead of a current one when I was building the template, and I
didn't notice this until too late.