{"id":22154624,"url":"https://github.com/ericflo/mediasummon","last_synced_at":"2025-07-18T08:34:56.085Z","repository":{"id":44074281,"uuid":"201356341","full_name":"ericflo/mediasummon","owner":"ericflo","description":"Summon your photos and videos back to you","archived":false,"fork":false,"pushed_at":"2023-01-04T09:38:13.000Z","size":5089,"stargazers_count":66,"open_issues_count":25,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-04-02T23:03:52.746Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ericflo.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE.md","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2019-08-09T00:10:28.000Z","updated_at":"2022-09-14T22:14:55.000Z","dependencies_parsed_at":"2023-02-02T07:16:24.276Z","dependency_job_id":null,"html_url":"https://github.com/ericflo/mediasummon","commit_stats":null,"previous_names":[],"tags_count":8,"template":false,"template_full_name":null,"purl":"pkg:github/ericflo/mediasummon","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ericflo%2Fmediasummon","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ericflo%2Fmediasummon/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ericflo%2Fmediasummon/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ericflo%2Fmediasummon/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ericflo","download_url":"https://codeload.github.com/ericflo/mediasummon/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ericflo%2Fmediasummon/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":265728871,"owners_count":23818731,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-12-02T01:49:57.929Z","updated_at":"2025-07-18T08:34:56.064Z","avatar_url":"https://github.com/ericflo.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Mediasummon\n\n[![Documentation](https://godoc.org/github.com/ericflo/mediasummon?status.svg)](https://godoc.org/github.com/ericflo/mediasummon)\n[![License](https://img.shields.io/github/license/ericflo/mediasummon.svg)](https://github.com/ericflo/mediasummon/blob/master/LICENSE.md)\n[![Build Status](https://github.com/ericflo/mediasummon/workflows/mediasummon%20release%20workflow/badge.svg)](https://github.com/ericflo/mediasummon/releases)\n[![Docker Pulls](https://img.shields.io/docker/pulls/ericflo/mediasummon)](https://hub.docker.com/r/ericflo/mediasummon)\n\n\u003cimg width=\"100\" height=\"100\" src=\"/admin/static/icons/apple-touch-icon.png?raw=true\" /\u003e\n\n### Summon your photos and videos back to you\n\nMediasummon is an open source application that fetches a copy of all your\nphotos and videos, and keeps them continuously backed up into one organized\ndirectory either on your computer or on a cloud storage provider.\n\n\u003cp align=\"center\"\u003e\n  \u003cimg height=\"480\" src=\"/admin/static/design/Figure.png?raw=true\" /\u003e\n\u003c/p\u003e\n\n\n## Supported media services\n\nMediasummon can connect to several online services to back up your media, and\nonce you have authorized it to do so, it will periodically connect to each\nservice and download any new photos or videos you have uploaded. Currently\nsupported:\n\n* Google Photos\n* Instagram\n* Facebook Photos\n\n\n## Supported cloud storage\n\nYou can store the downloaded files in a directory on your computer, or you can\nhave Mediasummon synchronize the files to a directory on a cloud storage\nprovider like Dropbox, Google Drive, or Amazon's S3. You don't have to\npick one, you can synchronize to several of these at once:\n\n* Dropbox\n* Google Drive\n* Amazon S3\n\n\n## Installation\n\nMediasummon is a single executable binary, so the easiest way to install it is\nto download it, make it executable, and run it:\n\n```console\ncurl -LO https://github.com/ericflo/mediasummon/releases/latest/download/mediasummon_linux_amd64\nchmod +x ./mediasummon_linux_amd64\n./mediasummon_linux_amd64 admin\n```\n\nTo set it up to start when your system starts, set up a systemd configuration\nin `/lib/systemd/system/mediasummon.service` like so, making sure to edit the\ninstances of `USERNAME` to your actual username and change `mediasummon_linux_amd64`\nto the executable for your system:\n\n```ini\n[Unit]\nDescription=mediasummon\nAfter=network-online.target\nWants=network-online.target\n\n[Service]\nType=simple\nRestart=always\nRestartSec=5s\nWorkingDirectory=/home/USERNAME\nUser=USERNAME\nGroup=USERNAME\nExecStart=/home/USERNAME/mediasummon_linux_amd64 admin\n\n[Install]\nWantedBy=multi-user.target\n```\n\nTo set environment variables on startup, set them under the `Service` section\nlike so:\n\n```ini\n[Service]\n...\nEnvironment=PORT=5050\nEnvironment=FRONTEND_URL=http://myhost.local:5050\n```\n\nFinally, run the following commands to start it up:\n\n```console\nsudo service mediasummon start\nsudo service mediasummon enable\n```\n\nIf you're a fan of Docker, there's an official image at `ericflo/mediasummon`.\nRunning it via Docker looks like this:\n\n```console\nmkdir -p ~/mediasummon\ndocker container run \\\n  -it --rm -p 5000:5000 \\\n  --mount type=bind,source=~/mediasummon,target=/mediasummon \\\n  ericflo/mediasummon:latest admin\n```\n\nThis example sets it up to sync file to a new `~/mediasummon` directory,\nrunning the admin web interface at [http://localhost:5000](http://localhost:5000).\n\n### The default username is `mediasummon` and the default password is `admin`\n\n\n## Raspberry Pi Installation Video Tutorial\n[![Instagram-to-Raspberry Pi backup in 8 minutes](https://img.youtube.com/vi/-UrIY5Se2f0/0.jpg)](https://www.youtube.com/watch?v=-UrIY5Se2f0)\n\n## Configuration\n\nThe easiest way to configure Mediasummon is using environment variables. If you\nset any of the following env vars, Mediasummon will use your provided setting.\nIt also checks for a `.env` file in the current directory following\n[dotenv](https://github.com/motdotla/dotenv) syntax, so you can either provide\nthe env vars environmentally, or by updating the contents of `.env`.\n\n**DEFAULT_TARGET**: The target directory you want to save your photos to.\nExamples of this would be: `~/mediasummon`, `s3://bucketname`,\n`dropbox://Mediasummon`, `gdrive://Mediasummon`. The default default is\n`~/mediasummon`.\n\n**IS_DEBUG**: Set to `true` if you're just testing things out or working on\nMediasummon itself, otherwise leave empty or set to `false`.\n\n**IS_HTTPS**: Set to `true` if you're hosting the http service securely as HTTPS,\notherwise leave empty or set to `false`.\n\n**FRONTEND_URL**: This is the URL to the admin frontend, which defaults to\n`http://localhost:5000`.\n\n**PORT**: The port to host the admin frontend on. Somewhat redundant to\n``FRONTEND_URL``, but split out for Reasons. Defaults to `5000`.\n\n**CSRF_SECRET**: A 32 byte secret used to protect against cross site request\nforgery. If not provided, one will be generated and saved in .env in the\ncurrent directory.\n\n**NUM_FETCHERS**: The maximum number of concurrent fetchers to run per media\nservice. Defaults to `6`, which should be fine for most users.\n\n**The following are especially optional**, because they can be provided via the\nadmin. However if you'd like to provide them using env vars, here they are:\n\n**{GOOGLE,INSTAGRAM,FACEBOOK,DROPBOX,GDRIVE}_CLIENT_ID**: Client credentials to\nthe OAuth application to auth with for the given service.\n\n**{GOOGLE,INSTAGRAM,FACEBOOK,DROPBOX,GDRIVE}_CLIENT_SECRET**: Client secret to\nthe OAuth application to auth with for the given service.\n\n**AWS_ACCESS_KEY_ID**, **AWS_SECRET_ACCESS_KEY**, and **AWS_DEFAULT_REGION**:\nCredentials to access an S3, for used in syncing to a bucket.\n\n\n## Per-user configuration\n\nWhile environment-based configuration is the easiest way to get started,\nMediasummon also supports a configuration file option. The benefit of using\nconfiguration files is that you can supply multiple, and then multiple\nusers can log in and use the same Mediasummon instance. Make accounts for\neveryone in your family, and you can all share the same one!\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fericflo%2Fmediasummon","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fericflo%2Fmediasummon","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fericflo%2Fmediasummon/lists"}