A module to import media files from public directory into media library.
There are a lot of tutorials on how to import file entities into media galleries using migration tools.
But they are neither practical nor easy. This simple module imports your previously uploaded images into media library.
This module can also import unmanaged files. If you simply upload a folder containing images (and subfolders containing other image files) all the image files in the uploaded folders will be converted to media entities.
LATEST NEWS:
- Now non-image files (pdf,docx,xlsx,pptx amd mp4 files) can also be imported.
- Since release 2.1.1 this module also embeds the Media Image Exif Importer (media_image_exif_importer) submodule, as Drupal 11 enhancement / upgraded fork of its original Media Entity Image EXIF module which looks declared abandoned by its maintainers and frozen within its compatibility with Drupal 10.
How it works
- The module scans the configured source folder, matching files to media types by their extension.
- For each matched file, a
Fileentity is loaded (if already managed) or created. - Items are dispatched to a queue as bundle / file / extra fields triples.
- The queue worker creates a
Mediaentity for each item, attaching the file to the correct source field. If a matchingMediaentity already exists for that file, the item is skipped — guaranteeing no duplicates across runs. - If Immediately process queue on submit is enabled (the default), the queue is drained as a batch process right after the import form is submitted. Otherwise, items remain in the queue for cron or manual processing via the Queue UI.
Requirements
The module requires the Drupal core Media and Media Library modules.
Since 2.0 it requires additional Queue Ui
contrib module to properly process queue with batch imports.
Instructions
- Require the module with
composer, or unpack the code base in the *modules* folder, currently in the root of your Drupal installation. - Enable the module in '/admin/modules', or using the following drush command:
drush en media-library; - Then, visit '/admin/config/media/media-library-importer-configuration' to configure the module;
- Last, visit '/admin/config/media/media-library-importer/import' for the actual import operation;
- It is possible to import Media (according to Media Library Import settings) using the following drush command
drush media-library:importordrush mli(alias); - It is possible to implement a hook_cron job and run automatic Media Library Imports (incrementally uploading new files in the same source folders locations). More info on this in the Readme.md file;
For developers
You can attach additional field values to media entities at import time by implementing
hook_alter_media_library_importer_media_extra_fields() in your custom module.
See media_library_importer.api.php for the full signature and usage example.
Note
You can run import as many times as you like without occurring into duplications. Once created, Media entities will not be re-created if already existing with the same source file.
Project information
- Project categories: Media
- Ecosystem: Drupal Media
785 sites report using this module
- Created by salihcenap on , updated
Stable releases for this project are covered by the security advisory policy.
Look for the shield icon below.



