A Viewer For Tumblr Likes
A couple of years ago, I wrote some code to display my archive of images from ffffound, an image bookmarking site, with the ability to filter by date and generated tags. That's not the only place where I have a huge archive of images, though - among them, there's also Tumblr.
Of course, Tumblr has fairly decent archives and tag navigation pages, so it's not a problem for my main blog. What it is lacking, however, is any sort of similar interface for likes - the FAQ page says so explicitly.
Likes can be viewed in a list or grid format on the web, but cannot be sorted or filtered
Luckily, there is an API, and it does expose likes. I use a Python package called tumblr-backup to back up this site, and it has an option to copy likes the same way. So, instead of only being able to look at likes on the Tumblr dashboard, twenty at a time, I now have a directory full of about sixteen thousand posts - in JSON - and their associated media.
This is, of course, roughly where I started with my archive from ffffound. Around the same time that I wrote up image tagging, I was already extending the web app to serve Tumblr images. As personal projects often do, it sat for months with very occasional pushes, until the last couple of weeks have seen some solid work to extend it.
Although the underlying problem is similar - I want to be able to navigate by date and tags - there are also lot of differences. Obviously, Tumblr likes aren't all images; there are multiple post types, so I opted to ignore the others. That said, the New Post Format sends everything as a text post, and the client has to determine from the content whether it's really an image. (At the moment, I'm cheating a little and looking for figure tags.)
Another issue is that Tumblr supports multiple images; text (and tags) on posts; and, with NPF, those can be interleaved. Initially, I just pulled out the first image for both the grid view and the details, which gave me a good idea of what I was looking at, but the recent coding burst added much better details page display. If a post has multiple images in a block, they're displayed as a JS powered slideshow. For legacy posts, they're followed by a caption; for NPF, the entire post body (which may include further image blocks) is shown.
The concept of reblogging means that Tumblr posts also have more, and richer, metadata than ffffound did - and certainly much more than my scrape managed. That includes the user whose post I liked; the user they reblogged; the user who posted the root post of the reblog chain; and the source site from which the post was saved. Although I already had "site" support as a filter for ffffound, this gave me up to four facets to filter on.
All in all, I feel like I've got a nice little app here. I can view likes back to December 2011. (I'm pretty sure it was a feature before that, but maybe the API can't surface them?) I can see who I've liked most frequently, and the ultimate source of those posts. I can see all the Flickr images that I ended up finding on Tumblr instead. I'm sure there's much more in those 10,000 odd image posts to dig up - and probably find I've found over and over again.
Unfortunately, one of the tasks that's still on the to do list is deploying this, so for now, you'll have to take my word for this. Ideally it'd be deployed as part of notes.husk.org, but that subdomain's managed by Tumblr, so I'll have to figure out another place. It's also probably time to open the code - although this is still a very niche project (and one which will take a bit of skill to set up), I'm sure I can't be the only person who wants to be able to look over this facet of their life on the site.