{"id":17356789,"url":"https://github.com/joonas-fi/timelapsebot","last_synced_at":"2026-05-02T13:34:23.236Z","repository":{"id":151026962,"uuid":"82464888","full_name":"joonas-fi/timelapsebot","owner":"joonas-fi","description":"24/7 recording timelapse bot in Golang, intended for Raspberry Pi","archived":false,"fork":false,"pushed_at":"2017-02-20T07:27:42.000Z","size":15,"stargazers_count":4,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-02-01T19:44:33.215Z","etag":null,"topics":["raspberry-pi","raspberry-pi-camera","timelapse","timelapse-videos"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/joonas-fi.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2017-02-19T14:29:46.000Z","updated_at":"2023-11-05T01:36:16.000Z","dependencies_parsed_at":"2023-04-05T11:16:53.715Z","dependency_job_id":null,"html_url":"https://github.com/joonas-fi/timelapsebot","commit_stats":{"total_commits":11,"total_committers":1,"mean_commits":11.0,"dds":0.0,"last_synced_commit":"48024c3bb8f0ae1741f0000000e19e0d211ddb8e"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/joonas-fi%2Ftimelapsebot","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/joonas-fi%2Ftimelapsebot/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/joonas-fi%2Ftimelapsebot/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/joonas-fi%2Ftimelapsebot/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/joonas-fi","download_url":"https://codeload.github.com/joonas-fi/timelapsebot/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245874634,"owners_count":20686807,"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":["raspberry-pi","raspberry-pi-camera","timelapse","timelapse-videos"],"created_at":"2024-10-15T18:58:44.849Z","updated_at":"2026-05-02T13:34:18.192Z","avatar_url":"https://github.com/joonas-fi.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"About\n-----\n\n24/7 recording timelapse bot in Golang, intended for Raspberry Pi.\n\nThis program is intended to be crash safe in that the only state that it uses is\nread from filesystem when the program is re-started.\n\nThis program also uses concurrency to try to ensure that the stills are taken at as\nfixed interval as possible - any background processing is done concurrently.\n\n\nRunning\n-------\n\n```\n$ go build timelapsebot.go\n$ nohup ./timelapsebot \u0026\n```\n\nTODO: systemd unit file\n\n\nBackground processes\n--------------------\n\n- Every 5 minutes, encodes all stills (currently ~60 stills / 5 mins) into a single video.\n- Every hour, combine those 5-min clips (12 x 5min = hour) into an hour-long video.\n- Every 24 hours, combine those hour-long clips (24 x hour = day) into a daily video.\n- When a new daily video is produced, upload that into AWS S3 and delete the video\n  from SD card so disk use does not grow unbounded.\n\n\nInstall gstreamer\n-----------------\n\nGstreamer is required to take advantage of Raspberry's hardware encoding of h264 and decoding of JPEGs.\n\nOtherwise, we could use something else like mencoder or libav.\n\nWith software encoding the first-gen Raspberry Pi (that I use for timelapses) would not be able to keep up.\n\nTODO:\n\n- Currently, the hardware encoded quality is abysmal. Find out how to fix it?\n- Use ffmpeg? Does it work on Pi 1? https://ubuntu-mate.community/t/hardware-h264-video-encoding-with-libav-openmax-il/4997\n\nFrom here https://www.raspberrypi.org/forums/viewtopic.php?t=72435\n\n```\n$ sudo sh -c 'echo deb http://vontaene.de/raspbian-updates/ . main \u003e\u003e /etc/apt/sources.list'\n$ sudo apt-get install libgstreamer1.0-0 liborc-0.4-0 gir1.2-gst-plugins-base-1.0 gir1.2-gstreamer-1.0 gstreamer1.0-alsa gstreamer1.0-omx gstreamer1.0-plugins-bad gstreamer1.0-plugins-base gstreamer1.0-plugins-base-apps gstreamer1.0-plugins-good gstreamer1.0-plugins-ugly gstreamer1.0-pulseaudio gstreamer1.0-tools gstreamer1.0-x libgstreamer-plugins-bad1.0-0 libgstreamer-plugins-base1.0-0\n```\n\nInstall avimerge\n----------------\n\n```\n$ apt-get install -y transcode\n$ avimerge -v\navimerge (transcode v1.1.7) (C) 2001-2004 Thomas Oestreich, T. Bitterberg 2004-2010 Transcode Team\n```\n\n\nOptional LED support\n--------------------\n\nLED is turned on for duration of still capture, so you can see the \"heartbeat\" and know that the rig is healthy.\n\nLED support:\n\n```\n$ git clone git://git.drogon.net/wiringPi \u0026\u0026 cd wiringPi \u0026\u0026 ./build\n\n# Test LED\n\n$ gpio -g mode 16 output\n$ gpio -g write 16 1 # off\n$ gpio -g write 16 0 # on\n\n# configure LED not to trigger on SD card activity, but GPIO only\n$ echo gpio \u003e/sys/class/leds/led0/trigger\n\n# set GPIO #16 (the LED) as output mode\n$ gpio -g mode 16 output\n```\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjoonas-fi%2Ftimelapsebot","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjoonas-fi%2Ftimelapsebot","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjoonas-fi%2Ftimelapsebot/lists"}