Giter Club home page Giter Club logo

flickr-uploader's Introduction

flickr-uploader

Upload a directory of media to Flickr to use as a backup to your local storage.

Interested in helping manage pull requests and issues? I need one or more collaborators since I no longer actively use this script.

Features:

  • Uploads images in full resolution to Flickr account (JPG, PNG...)
  • Reuploads modified images
  • Removes images from Flickr when they are removed from your local hard drive
  • Uploads videos (AVI, MOV, MPG, MP4, 3GP...)
  • Stores image information locally using a simple SQLite database
  • Creates "Sets" based on the folder name the media is in (getting existing sets from Flickr is managed also)
  • Ignores unwanted directories (like ".picasabackup" for Picasa users)
  • Allows specific files to be ignored (via regular expressions)
  • Convert RAW files (with an external tool)

THIS SCRIPT IS PROVIDED WITH NO WARRANTY WHATSOEVER. PLEASE REVIEW THE SOURCE CODE TO MAKE SURE IT WILL WORK FOR YOUR NEEDS. IF YOU FIND A BUG, PLEASE REPORT IT.

Requirements:

  • Python 2.7+ (for DSM use: Official package from Synology does not work for HTTPS so use package from SynoCommunity)
  • File write access (for the token and local database)
  • Flickr API key (free)

Setup:

Go to http://www.flickr.com/services/apps/create/apply and apply for an API key Edit the following variables in the uploadr.ini:

  • FILES_DIR = "YourDir"
  • FLICKR = { "title" : "", "description" : "", "tags" : "auto-upload", "is_public" : "0", "is_friend" : "0", "is_family" : "0", "api_key" : "Yourkey", "secret" : "YourSecret" }
  • FLICKR["api_key"] = ""
  • FLICKR["secret"] = ""

Refer to https://www.flickr.com/services/api/upload.api.html for what each of the upload arguments above correspond to for Flickr's API.

Usage

Place the file uploadr.py in any directory and run via ssh (execution privs required):

$ ./uploadr.py

It will crawl through all the files from the FILES_DIR directory and begin the upload process. To check what files uploadr.py would upload and delete you can run the script withe option --dry-run:

$ ./uploadr.py --dry-run

In case you've changed the EXCLUDED_FOLDERS setting in your INI file and want to remove any previously uploaded files that are now ignored, run the script with the option --remove-ignored

$ ./uploadr.py --remove-ignored

Q&A

  • Q: Who is this script designed for?

  • A: Those people comfortable with the command line that want to backup their media on Flickr in full resolution.

  • Q: Why don't you use OAuth?

  • A: The older method is simpler to understand and works just as good. No need to fix what isn't broken.

  • Q: Are you a python ninja?

  • A: No, sorry. I just picked up the language to write this script because python can easily be installed on a Synology Diskstation.

  • Q: Is this script feature complete and fully tested?

  • A: Nope. It's a work in progress. I've tested it as needed for my needs, but it's possible to build additional features by contributing to the script.

  • Q: How to automate it with a Synology NAS ?

  • A: First you will need to run script at least one time in a ssh client to get the token file then with DSM 5, create an automate task, make it run once a day for example, and put this in the textbox without quotes "path_to_your_python_program path_to_your_script". For example, assuming you installed Python package from Synocommunity, command should look like "/usr/local/python/bin/python /volume1/script/flickr-uploader/uploadr.py".

flickr-uploader's People

Contributors

baesfr avatar belidzs avatar cmgj74 avatar davidjb avatar grinderz avatar hegsie avatar kdedakia avatar lodoss5 avatar nscendoni avatar ryanluedders avatar trickortweak avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.