This script copies the media files in the correct path as described by Daniele Carrer

pip install organize-media==1.1.0


Organize Media (photos and videos)

This application writes, inside an input existing directory , one directory list where the videos and photos are copied and organized in subdirectories following the year of creation, month of creation and topic. In detail:

  • I declared a ( relative or absolute) path where there are the videos and photos organized in subdirectories ('topic') and another path where writing the copied files
  • The application writes the directories and subdirectories of they don't exist, otherwise they are not modified
  • The structure of the final directories is based on the extension and the topic of the files



  • In copying the files, every directory also will have a CSV file (different from media type) with the list of the files and the data (this feature will remove the -w flag in input)
  • Package the project
  • use the internal logging in python
  • add the control that draft-tag must has'nt not more than 100 row
  • create the specific file for Shutterstock: ( I put the filename, description and tags in different rows)
  • Using chain of command desing pattern
  • Create one file draft-tag- for every image or video, in the list I create the selected-tags and after, into join phase, for every file I'm looking for the specific file tag, I read this and I join in the final file
  • Before writing the tags, I control that the rows have'nt it
  • When I create the final file CSV to upload, I have to create more than 1, so I can upload in batch way
  • Create directroy realtime and timelapse in directory di copy phase


  • write the file Contribuing like this



  • Organize the code: there are classes into directory test ( sistemare gli import nella directory organizemedia )
  • use travis for CI
  • delete class AsString
  • fix the style in the modules
  • put classes with the tests in tests and importo test classes in package organizedmedia, where there are only the classes withou test



  • Fix the unit test
  • fix the Test Suite
  • Resolve the TODO in the code
  • Organize the structure following the guidelines in[The Hitchhiker's Guide to Python!] (
  • Delete the test classes where it s import date or import datetime
  • Create directories exported and original in topic in copy command
  • review the system of the calculation of the more important tags


  • Write defensive class to manage the input parameters



Status CI Integration

I use Travis Build Status

Getting started


  • Python 3.0+
  • pip
  • unittest


  • Clone the project with git-clone (or download directly it)
  • Have fun!

Running the tests

  • Run python -m unittest and python -m unittest : the letter indicates the first letter of the module in the current TestSuite

Break down into to end to end tests

No indications

Coding styles sheets

Please read the file


  • No package built (sorry, I'm a beginner in Python :) )

Built with:

  • ViM - one of the best text editor I know
  • unittest - most famous library about the unit testing in Python


Please read the for the details about the code of conduct and the process for submitting pull requests.


We use SemVer for versioning. For the versions available, see the tags on this repository.


  • Alessandro Puzielli - creator - Alepuzio

See also the list of contributors who participated in this project.


This project is licensed under the MIT License - see the file for details