Derpibooru Import is running again! All imported content is tagged as 'derpibooru import' and has the original tags.
Welcome to Twibooru! Anonymous posting only; no content restrictions beyond pony-related and legal; comments are disabled by default (Settings -> Comments). Read me!

About Uploading

Last updated

Uploading content is easy as pie. You just hit that fat Upload () button up there next to the search box and fill in the form. But, if you'd like some more details, then read on.

Metadata

We provide two important fields for metadata: Tags and Source URL.

Tags

Tags are designed to let you group items together and describe them in terms of their content. The Description field — primarily intended for people uploading original content to the site — can be used to provide a more detailed description of or context around the item. It can also be used to provide audio descriptions for people with screenreaders.

For instance, the fact that a post contains twilight sparkle should be represented with a tag, and if it's the summer sun celebration, that's a tag, too. Fully describing a post can be done in the description field: Twilight Sparkle standing on the steps at the Summer Sun Celebration, wide-eyed in awe at idol Princess Celestia.

We also have meta tags. The artist:artist name tag should be used to link an artist name to an uploaded image or video, and the author:author name tag should be added to posts containing text. Other meta tags define ratings, which are used to spoiler or hide NSFW content when not wanted. These should be used where appropriate.

For more information on how to properly use tags, please see our Tag Guidelines.

Source URL

Finally, there is the Source URL field. This should link to the page on which the content was originally found. Try to discover the source URL if you can, but if you can't then leave this field blank.

Scalable Vector Graphics posts

We support SVG posts. When you upload an SVG, we export PNG images from it for display on the site. But you can still download and view the SVG version using the download () and view () links on the content page. We use the librsvg to render the images.

We recommend you provide a sensible default resolution if your upload is an image or video — a couple of thousand pixels is plenty!

Pastes

You can also post unformatted text pastes. To do so, you can either upload a normal TXT file or you can type or paste text by clicking the Toggle paste form button on the upload form. This form will also allow you to specify the image ID of a thumbnail you wish to associate with your paste. If you upload while logged into your account, you can change this at any time from the post's page.

Optimization

When you upload a GIF, JPEG, or PNG image, we optimize them by removing unneeded data without affecting quality; resulting in smaller file sizes for us to store, leading to faster page loads for everypony. The tools we use to accomplish this include:

PNG

We use optipng to deinterlace and compress PNG images, fixing any encoding issues

JPEG

We use jpegtran to sort out JPEGs, which supports lossless optimization of the entropy encoding scheme used in JPEG compression

GIF

GIFs (pronounced yiffs) are a bit more complex since we have to treat all GIFs as possibly animated, and so have to deal with all the frame processing. We use gifsicle and ffmpeg to process GIFs

SVG

SVG images remain unchanged

Deduplication

We perform perceptual image deduplication using a simple image intensity based mechanism which has proven to be scalable and reasonably reliable over the years. We also provide SHA512 hashes of content on the site, though these are no longer used internally for deduplication.

Workflow

As processing runs in the background, we continue to serve the unoptimized file to ensure an uninterrupted experience. If you wish to download a file, however, you may wish to wait until the fully processed image is available.

tl;dr: upload, and don't worry about it! We'll handle all the heavy lifting on our end. And once we finish processing your post, it'll be served instead of the old unoptimized one immediately.

Revision history