Importing an Existing Photo Library into Piwigo: How Does It Work?

When an organization decides to implement Piwigo, sometimes the photo library starts from scratch. But more often than not, there is already a system in place: a photo libray tool, a Digital Asset Management (DAM) system, a CMS like WordPress or Drupal, or even a custom-built solution. In that case, starting over is out of the question—users want to preserve their structure, albums, and metadata (titles, authors, descriptions, copyrights, tags…).

So, how does it work? What can be imported? How? And how easy—or complicated—is it? Let’s take a look, with real examples from the Piwigo team.

The Custom Import Process

When a client asks us to migrate an existing photo library into Piwigo, the general method is always the same, regardless of the previous software:

  1. The client provides a spreadsheet (CSV or Excel), with one row per photo and columns for metadata: filename, title, author, date, description, tags, albums…
  2. They also send us the media files, ideally via an FTP account we set up for them. In some cases, we’ve also received hard drives by post or 220 GB zip files uploaded to cloud storage!
  3. We prepare a development instance of Piwigo, where we first import the images. Then, we match the spreadsheet data with the imported files to populate properties, assign images to albums and tags, and so on.

This matching step (called mapping) is the most delicate: each row in the spreadsheet must correspond exactly to a file. And that’s not always straightforward…

What Makes the Import Complicated?

Several factors can slow down the process:

  • Filenames: Sometimes the filenames in the CSV don’t exactly match the actual files (accents, special characters, spaces, different extensions, etc.). This often requires cleanup and reprocessing.
  • Duplicates: There may be several files with the same name in different folders, complicating automatic mapping.
  • Useless or empty columns: We sometimes spend time analyzing data we end up not importing.
  • Rules to define: In some cases, filenames can’t be used for mapping at all. We then need to get creative—maybe by writing a custom algorithm to extract a date or another property from the filename.
  • Complex or locked exports: Sometimes, the hardest part is getting the data out of the previous system. Some vendors charge thousands of euros for data exports, or deliver hard-to-exploit files. At Piwigo, we think that’s unacceptable—your data is yours, period.

Finally, one of the most time-consuming parts is working with the client: What do you want to keep? What should we do with this column? Does this field have real value? All of this is discussed together, and each project is unique.

Want to Handle the Import Yourself?

Custom data migration is included in Piwigo’s VIP plans. Other clients, including self-hosted users, can request a quote. As you’ve seen, this process is never automatic—it takes time and expertise, so it can’t be free.

However, if you’re on a limited budget, here are a few solutions to help you import your files into Piwigo:

  • Piwigo Remote Sync: Automatically imports a local folder tree into Piwigo, preserving the folder structure as albums.
  • Initial FTP Import (for piwigo.com clients): We can provide an FTP account for you to upload your files. We then take care of the base import and create albums based on your folder structure.
  • Properties Mass Update plugin: Allows you to import metadata from a CSV file. You need one file per property (title, description, author, tags…). The files must already be in Piwigo, and the filenames must match exactly.
  • Flickr2Piwigo plugin: If you previously used Flickr, this plugin lets you import your albums or photos in bulk, along with associated metadata.

Real-World Examples: We Did It for Them

Here are a few examples of clients for whom we performed custom data imports. Their photos were originally stored in various systems like Drupal, Ajaris, ePhoto, or Oodrive.

As you’ll see, each case is unique—and there are always surprises!

INRAE

The vendor of INRAE’s former photo library provided a CSV export, but the file was corrupted: some lines contained data for two photos at once, which we had to manually clean up.

Another challenge: there was no column to indicate which album each photo belonged to. We had to infer the folder structure from the filenames and write a custom algorithm to recreate the album hierarchy. This required several iterations with the client.

London Legacy

This London government agency manages the photo archive for the 2012 Olympics. We received a complex database dump (each custom field in a separate table) and a CSV with 30+ columns, plus a 220 GB zip file on Google Drive—of which 100 GB turned out to be unnecessary duplicates and backups. It took quite a bit of time to sort and download everything!

That’s why we now recommend FTP transfers 😊

Once the data was cleaned, we worked with the client to determine the best way to use each column in Piwigo. For example:

  • The “collection” column sometimes contained multiple values—we used that to create albums.
  • The “location” column also had multiple values—we turned those into tags.

The client paid €1300 for the custom import. That might sound like a lot, but imagine manually importing and tagging 27,000 photos in Piwigo…

In the end, the team was delighted:

“We didn’t expect it to be this good—this is way better than our previous system!”

Grand Paris Seine et Oise (GPSEO)

This local authority previously used a different photo management system. Fortunately, the vendor cooperated to help recover the data—but GPSEO still had to pay €2000–3000 to get the full export.

What we received:

  • A CSV with the files and their properties
  • A CSV with a complex multi-level thesaurus
  • 200 GB of images uploaded via FTP

The challenge: each photo was linked to only one entry in the thesaurus (e.g., “skatepark”), without any information about its higher-level category. But “skatepark” might exist in multiple branches, like under “urban planning” or “leisure.” We had to manually decide, in collaboration with the client, where each photo belonged.

Once the import was completed, Julie, a Piwigo partner and photo librarian, stepped in to fine-tune albums and tags.

Foyers de Charité

This client also used another photo management tool. Their data was relatively clean: 3,200 photos, 14 GB, and a metadata CSV. Still, some cleanup was needed—dates were written out in full text, and filenames in the CSV included accented characters, while the files themselves did not.

The files were transferred via FTP, and the import went smoothly after cleaning.

In Summary

Importing a photo library into Piwigo is rarely plug-and-play—but it’s absolutely doable. It all depends on the quality of your data, the original format, and your specific needs.

Our role is to help you make the right choices: what to keep, how to structure your albums, which metadata matters, and how to ensure your users can find what they need.

One last thing worth repeating: at Piwigo, your data truly belongs to you. We will never lock you into a system that makes it hard or expensive to export your content. If you ever decide to leave Piwigo, you’ll be able to recover your full photo library and metadata—no strings attached 😊

Expiry Date : a new plugin to manage expiration dates on photos

How to manage the expiration date of image usage rights and photo consents on your photo library? With the Expiry Date plugin for Piwigo, it’s easy. Today, let’s discover this new plugin designed in collaboration with one of our Enterprise customers.

Expiry Date : presentation

Expiry Date is a new plugin for our enterprise customers. It is not available by default on your Piwigo: you have to contact the customer support to benefit from it as part of your subscription (if you have an enterprise account).

Once activated on your gallery, this plugin will add a new “Expiry Date” field available on each photo.

You can change the expiry date of a photo from Piwigo’s administration, either individually or in bulk on a selection of photos with the batch manager.

Add an expiry date to a selection with the batch manager

Once an expiry date has been set on a photo, it will appear next to the other fields in your gallery.

Display of the expiry date on the gallery

The plugin’s settings allow you to choose what happens when the expiry date is reached.

You can choose between 3 options :

  • doing nothing (the date is just informative)
  • deleting the photos
  • archiving the photos (i.e. move them to a private album of your choice)

In addition, you can send an email notification before the date and on the precise day of the expiry date:

  • to users who downloaded the file (if visit history is enabled)
  • to your gallery administrators.

Why should you use the Expiry Date plugin?

There are several cases where you need to manage an expiration date or expiry date on a photo or any other file.

Information

Expiry date or expiration date? Well, both terms are OK. Expiry date is most often used in British English, and expiration date is more frequent in American English.

Image usage rights / copyright

First of all, it is necessary when the image usage rights are limited in time and must be renewed. 

This is often the case when you buy photos from a photographer, or on an online image bank: the license can be limited to 5 years or less. 

If you are still using an image on your website or in any communication medium when your license has expired, you may be prosecuted for copyright violation.

Photo consent policy

Then, there is the case of photo consent: in some cases and some countries, if you want to use a photo or a video of a physical person on your website or any other medium, you must first obtain their consent. The contract can mention a maximum duration, at the end of which you no longer have the right to use this image. 

These two legal constraints are the main reasons why an expiration date (or expiry date) can be useful on a photo, but there are many other use cases.

Are you interested in this plugin? Contact the support at the usual email address to request it! 

Warning

Any request made in the comment section on the blog will not be treated.  But feel free to tell us in comments what you could use this plugin for!


For more information on copyright and image rights, you can read the articles below. 

Please keep in mind that rules can differ depending on your country.

Copyright and GDPR for photographers (UK)

The Ultimate Guide To Photo Release Forms

Image Usage Rights 101: How to Make Sure You’re Covered

Legally using images