Tumblr API-based toolkit for batch posts processing.

Usage no npm install needed!

<script type="module">
  import tumblrToolkit from 'https://cdn.skypack.dev/tumblr-toolkit';



Set of CLI tools for your tumblr blog.

Post media file to blog

tt post -c path/to/keys.json -b blogName -m photo -f path/to/pic.jpg

Optional params (with example)

--caption "My pic"

--tags "one, second one"

Get blog info

tt blogInfo -c path/to/keys.json -b blogName

Get post info

tt postInfo -c path/to/keys.json -b blogName --id "post-id"

List blog posts

tt blogPosts -c path/to/keys.json -b blogName --limit 12

List blog queued posts

tt blogQueue -c path/to/keys.json -b blogName --limit 12

List blog draft posts

tt blogDraft -c path/to/keys.json -b blogName --limit 12

Clean broken video posts tool

Broken media posts cleaning tool. Cleans up (removes) video-posts with media pointing to 403 error returning URLs (by default). See available options below.

Clean through videos returning 403 HTTP status code

tt clean -c path/to/keys.json -b blogName --clean-code 403

Clean through videos returning HTTP status code other than 200 (OK)

tt clean -c path/to/keys.json -b blogName --clean-code 200 --clean-invert true

Posts removal tool

Deletes posts that fit passed conditions.

Remove first 10 posts from queue

tt remove -c path/to/keys.json -b blogName -s queue

Find and show posts that will be removed. No removal action will be taken

tt remove -c path/to/keys.json -b blogName --post-type audio --post-tag garbage

Remove all audio-posts, perform actual removal (dry-run false)

tt remove -c path/to/keys.json -b blogName --post-type audio --remove-dry-run false

Tag posts by post's actual type tool

Tags video posts with 'video' tag, audio with 'audio' and so on...

Tag all posts

tt tag-type -c path/to/keys.json -b blogName

Tag all posts in queue

tt tag-type -c path/to/keys.json -b blogName -s queue

Tag all posts, for photo-posts containing GIFs, additionally set 'gif' tag

tt tag-type -c path/to/keys.json -b blogName --tag-type-gif add

Tag all photo posts containing GIFs with 'gif' tag instead of 'photo' tag

tt tag-type -c path/to/keys.json -b blogName --post-type photo --tag-type-gif replace

Process posts with given source code

Perform function built from given user code. Should return one of the constants from given codes object. May return promise resolving to one of the codes as well. Function receives post and codes (return codes) as arguments, return one of return codes for further post process.

Example source code:

return post.type === 'link' ? code.REMOVE_POST : code.DO_NOTHING;

Would remove all link posts and keep other.

post.tags.push('new tag');
return code.UPDATE_POST;

Would update post with new added tag.


Remove all posts having 'bad post' tag from blog's queue

tt process -c path/to/keys.json -b blogName -s queue "return post.tags.indexOf('bad post') >= 0 ? codes.REMOVE_POST : code.DO_NOTHING;"

See all commands common and specific options with

tt --help
tt <post|clean|remove|tag-type|process> --help


In order to use tumblr api for getting and processing posts, credentials file should be provided. File content JSON should look like this:

  "consumer_key": " consumer key value ",
  "consumer_secret": " consumer secret value ",
  "token": " token value ",
  "token_secret": "token secret value"


Installing the tool:

npm install -g tumblr-toolkit

Get access with Tumblr