Simple Media Management System Using GitHub Repositories

Aquarelle Painting
Courtesy of Ethical Software Ltd. - Creative Commons Attribution Share Alike 4.0 International (CC-BY-SA-4.0)

Our current new project is to create a simple media management system through GitHub repositories and GitHub actions.

We are currently collaborating with the Hong Kong Company called Ethical Software Ltd., their team of artists, designers and calligraphers have spent the last two years creating a large amount of artistic imagery and 4 different sets calligraphy of 214 Chinese radicals.

Project Description

We are to help them create an automated media asset management platform, where they want standardize and automate their production and deployment process with little to no human intervention.

Their production process will include artists, calligraphers, and designers with basic computer skills, and almost no technical knowledge. Each on of them will submit new or changed media assets for review. Hereafter the following production process will launch:

  • Logging the file
  • Creating a copy
  • Resizing
  • Changing the quality and format
  • Creating new metadata
  • Applying a new name following a pre-defined naming scheme
  • Saving it to the corresponding folders to a remote storage location
  • Creating a library registry of the original files and the new variant files using version control

Once the production is completed the deployment process automatically launches and publishes the new files to a website and a pdf.

The original files that we will manage can range from 200 to 700 MB in size. Here is a small sample of such images so you get an idea.


Radicals & Variants

Creating a Simple Media Management System

The beauty of our planned approach for a simple media management system, is that expected maintenance costs will be insignificant.

We are currently working on a POC (proof of concept) but it will essentially combine low cost external storage with GitHub repositories for the process.

For one thing technology wise, we strive to interconnect several GitHub repositories and make extensive use of GitHub actions and Python scripts in combination with an Open-Source version control system for machine learning projects called DVC .

Eventhough, DVC is originally meant for machine learning DVC we consider it adequate for our purpose since it offers an elegant way to handle version control for large binaries.

Hence, if you need to manage large binaries and have version control, we encourage you to check it out, since it has proven so far very useful and its documentation is very good.

Project Objectives for Nautilus

Certainly, like with all of our projects we strive to do the following:

  • Contribute to projects we think that add value to the community
  • Explore new approaches to solve problems
  • Collaborate with and or develop Open-Source software
  • Add to our personal development and learning
  • Do interesting things that we can share
  • Build our expertise and skills towards our long term goals as a company and as individuals

Indeed, we believe that this project meets all our objectives and especially contributes to our long term project’s first stepping stone:

  • Learning how to create complex repository structures, to manage version controlled large binary data sets hosted at remote locations.

If you are curious about what we do and want to have a look at the POC repository or GitHub page:

Finally, if you would like to collaborate with us let us know!