Derpibooru Slideshow
This is a simple one-page web app that fetches new pony art from Derpibooru and displays them in a slideshow in (sort-of) random order. The slideshow focuses on fan art of My Little Pony: Friendship is Magic
The original use case is mounting a tablet computer to the wall and setting it up to show a slideshow of pony art in the morning. Other uses could include displaying it on a larger screen or smart TV or using it as a screensaver.
About the art
The slideshow should be safe and enjoyable for casual and younger fans. Images of a violent or suggestive/sexual nature are filtered out, as well as spoilers. "Anthro" art and images that only contain non-official characters are filtered out as well. Works based on the spin-off Equestria Girls are also filtered out. The art is selected based on their score on Derpibooru, with a higher threshold for humanized characters.
The effectiveness of this filter depends on how well the artwork is tagged. Not all art based on Equestria Girls is tagged as such, for example. And even though the filter exclusively picks "safe" art, some artwork found under this category does, unfortunately, push the limit.
It's possible to customize the type of content in the slideshow by customizing the search query.
Credits
This page was created by EwoudCP for personal use. You can contact me on DeviantArt, Tumblr or find me on Discord with the tag "EwoudCP#4910". User interface icons are from Font Awesome.
Dec 13th, 2018
- Reorganized the source code and ported it to TypeScript, drastically improving the code structure and quality
- Added support for random sorting (a different slideshow on each refresh)
- Excluding .webm files from showing up
May 28th, 2018
- Added fullscreen option (for some smart/tablet browsers that don't have the option natively available)
- Added support for sorting (type and order)
- Added parsing of Derpibooru search URLs in the query
- Reduced the amount of Derpibooru API calls
There are several ideas for future features.
I'm still trying to figure out a nice and clean way to save custom queries. This is technically possible already, but we should allow the user to save, manage (add, delete, edit) and organize custom queries in a way that isn't confusing or convoluted. Preferrably, I would include several "standard" preset queries, allow the user to add their own and arrange them. This should be possible for non-power users, and accessible on mobile devices.
Another idea is to include video support. There are a few potential issues here, such as loading times, many mobile browsers not supporting autoplay without user intervention and potential unexpected sound playback. There's also the matter of whether long videos should be allowed to play out past our configured interval length, or if we want to cut them off.
I would also like to eventually add an option to keep the slideshow refreshing with new content. First it would select content from the first few search result pages, and after a while it could reload with the next few pages, and on and on until you've reached the last page and we wrap it around. Or an option to reload regularly (every few hours or so), removing the need to refresh manually to update the content.
A more advanced feature could be to add a query-edit-mode, where the user can customize the slideshow by making adjustments on the fly. See an image you don't like? View its tags, pick one (character, artist, subject matter) and exclude it. Or maybe just exclude the image itself (blacklist it?) so it doesn't come back. The slideshow would update with the changes. There are several ways to do this, but none of them really appeal to me.
There are several other ideas that I have considered but discarded. The purpose is to provide a mostly hands-off slideshow that is easy to use, and adding "would be nice" features would not always be beneficial. For example, a "skip this image" button would not just be used to skip a bad image every now and then.
Content
Content is fetched from Derpibooru, using their API to perform searches. The search query determines the kind of content that appears in the slideshow.
Current query
Parameters q and filter_id are passed on to API requests. See the Derpibooru API Documentation for more information.
For security reasons, parameter "key" is currently not supported.