Description
DarkUploader closes the gap between Darktable and WordPress. Edit your photos in Darktable, select your target gallery / library, export them, and they land in WordPress ready to publish.
How it works
- Edit your photos in Darktable as usual.
- Export them with the DarkWP companion script for Darktable.
- Pick a target gallery and export. DarkUploader receives the images over a REST endpoint on your site and puts them in the default folders.
DarkUploader requires the free DarkWP script to be installed in Darktable to upload the photos. DarkUploader is the WordPress side that receives it.
Supported galleries
- WordPress Media Library
- NextGEN Gallery
- Meow Gallery
- FooGallery
Every upload can carry a title, alt text, description, and caption, though which of those fields are used depends on what the target gallery plugin itself supports.
Features
- One-click export from Darktable straight into WordPress
- Upload into an existing gallery, or create a new one on the fly
- Per-image title, alt text, caption, description, and tags with placeholder support
- Batch uploads
- Configurable maximum upload size
- Upload history and statistics, with configurable log retention
- Extensible adapter system for adding support for other gallery plugins
For developers
DarkUploader ships with an adapter system so you can register support for a gallery plugin it doesn’t cover out of the box:
darkuploader_supported_galleries— filter to register your own gallery adapter.
Installation
- Install and activate DarkUploader like any other WordPress plugin (Plugins > Add New, or by uploading the zip file).
- Go to Media > DarkUploader and choose which gallery plugin(s) DarkUploader is allowed to upload to. By default, no target is active. Make sure to select at least one target before exporting.
- Install the DarkWP script in Darktable — follow the installation instructions in that project’s readme.
- Enter your login and application password in the “darkwp accounts” module. The selected user must have the upload_files capability.
- Select the export target in the export module.
- Export photos
FAQ
-
Do I need another plugin to use DarkUploader?
-
Yes. DarkUploader only handles the WordPress side of the upload. You also need the free DarkWP script installed in Darktable, which performs the actual export from Darktable to your site.
-
Which gallery plugins are supported?
-
The WordPress Media Library, NextGEN Gallery, Meow Gallery, and FooGallery are supported out of the box. Developers can add support for other galleries with the
darkuploader_supported_galleriesfilter. -
Can I upload several photos to the same gallery in one export?
-
Yes. There is no limit from this plugin. Some galleries might restrict the amount of images per gallery.
-
Where can I see a log of past uploads?
-
Go to Media > DarkUploader > Statistics & History for a log of uploads (including any errors) and overall statistics. You can control how long logs are kept, or turn logging off entirely, from the General settings.
-
Something isn’t working. Where can I get help?
-
Open an issue on the DarkUploader support forum on GitHub, or email info@dans-art.ch.
Reviews
There are no reviews for this plugin.
Contributors & Developers
“DarkUploader – Image uploader for Darktable” is open source software. The following people have contributed to this plugin.
ContributorsTranslate “DarkUploader – Image uploader for Darktable” into your language.
Interested in development?
Browse the code, check out the SVN repository, or subscribe to the development log by RSS.
Changelog
0.5.5 – 2026-10-05
- Added: Stricter permission checks. Logs and Statistics are only shown to the current user (except admin)
- Added: Adapter-specific permission check to respect the gallery plugin’s permission requirements
- Refactored code
- Fixed: Filtering and searching the log returned no results with some users
- Improved: Validation and sanitization of log parameters
- Fixed: Encoding of special characters in the log
- Added: Search log message finds now users by login / display name
0.5.4 – 2026-09-26
- Fixed: Fatal Error when activated on PHP 7.4. Bumped to PHP 8.0
- Fixed: Log display did not work in WP <7.0. Bumped required version to 7.0
- Changed: The General settings require the manage_options capability. Users with upload_files can still see the statistics and history
- Added: Uninstall routine that removes the log table, options, transients and cron
- Added: Multisite support for activation, deactivation and new sites
- Fixed: Uploading to the disabled Media Library caused a fatal error
- Fixed: FooGallery reported success when adding to a gallery that doesn’t exist
- Fixed: “No logging” still created log entries
- Fixed: Uploaded images were left in the Media Library when adding them to a Meow Gallery or FooGallery failed
- Fixed: wpdb::prepare() notice when loading the history
- Fixed: Log dates now use the database timezone, matching the log cleanup
- Fixed: The log table could not be created on MySQL < 5.6.5. The table is now also created/upgraded after plugin updates, and a notice explains when it fails
- Fixed: Double escaped messages in the REST responses and the history
- Fixed: FooGallery default sort order
- Fixed: Translations for the history table and the help tab
0.5.3 – 2026-09-17
- Removed: Tested up in plugin header
- Improved readme
0.5.2 – 2026-09-05
- Removed debugger access to create fake log entries
- Added rel=”noopener noreferrer” to links
0.5.1 – 2026-09-05
- Added translator comment
- Fixed various bugs
- Fixed: Errors and warnings from the Plugin Check scan
0.5.0 – 2026-09-05
- Added Meow Gallery support
- Refactored wordpress library adapter
- Added filter to dynamically add new adapters
- Added support for FooGallery
0.4.0 – 2026-08-30
- All features for the first release version are implemented!
- Added WP cron hook
- Added function to create log entries for testing (DEBUG only)
- Added plugin deactivation function
- Improved max upload size field
- Added upload size check
- Added error logging for failed uploads
- Added a Help tab with installation and support info
- Added a “Message type” column to the History table
0.3.5 – 2026-08-29
- Added logging database table
- Added new rest route to get the logs
- Added backend style
- Created Statistics and History settings page
- Added DataTable to display the logs
- Added statistics get and update functions
- Updated rest routes to get the History
0.3.0 – 2026-08-26
- Renamed the plugin to DarkUploader with the textdomain darkup
- Added menu under Media
- Refactored code
0.2.0 – 2026-08-26
- Added the
/darkup/v1/mediaREST endpoint for uploading an image to a target gallery. - Added a
permission_callback(requires theupload_filescapability) to both the/infoand/mediaREST routes. - Implemented the NextGEN Gallery adapter: create a new gallery, or add to an existing one, uploading through NextGEN’s own
import_image_file()API so EXIF extraction, rotation correction, and thumbnail generation are handled the same way NextGEN’s own uploader handles them. - Added alt text, description, tags, and published/hidden (
exclude) handling for uploaded NextGEN images. - Added batch support (
X-Darkup-Batchheader) so multiple images from one Darktable export can share a single newly created gallery. - Fixed the
targetfield’s validation callback, which previously accepted any input.


