{"id":25241312,"url":"https://github.com/noviceiii/timelapse","last_synced_at":"2026-02-14T03:01:57.605Z","repository":{"id":267697639,"uuid":"902073096","full_name":"noviceiii/timelapse","owner":"noviceiii","description":"Script and config to create timelapse videos with text overlay on a raspberry pi.","archived":false,"fork":false,"pushed_at":"2025-02-10T21:38:38.000Z","size":198,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-02-18T21:01:57.841Z","etag":null,"topics":["ffmpeg","netatmo","raspberrypi","timelapse","youtube"],"latest_commit_sha":null,"homepage":"https://www.youtube.com/playlist?list=PLcnGcU-Z-RJ1uRxLbBiHb2feVr6tQzJVj","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/noviceiii.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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":"2024-12-11T21:17:27.000Z","updated_at":"2025-02-10T21:32:16.000Z","dependencies_parsed_at":null,"dependency_job_id":"2b309b07-4fe1-4d96-a834-169331ee4257","html_url":"https://github.com/noviceiii/timelapse","commit_stats":null,"previous_names":["noviceiii/timelapse"],"tags_count":6,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/noviceiii%2Ftimelapse","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/noviceiii%2Ftimelapse/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/noviceiii%2Ftimelapse/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/noviceiii%2Ftimelapse/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/noviceiii","download_url":"https://codeload.github.com/noviceiii/timelapse/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247394835,"owners_count":20932013,"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":["ffmpeg","netatmo","raspberrypi","timelapse","youtube"],"created_at":"2025-02-11T21:03:16.022Z","updated_at":"2026-02-14T03:01:52.567Z","avatar_url":"https://github.com/noviceiii.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Raspi Time Lapse Script\n\nThis Bash script automates the process of creating a time-lapse video from sunrise to sunset, adding a text overlay with various information, backing up the video to a remote server, and uploading it to YouTube. Absolutely no warranty for anything given.\n\n## Features\n\n- **Time-Lapse Capture**: Uses libcamera for capturing images.\n- **Config File**: Includes a config file for clean settings.\n- **Placeholders**: Certain strings can be set by placeholders and dynamically updated, e.g., for a YouTube description or title.\n- **Text Overlay**: Adds date, time, sunrise/sunset times, weather conditions, and system temperature to each image.\n- **Dynamic Timing**: Starts capturing images based on sunrise with an offset and stops after sunset with an offset.\n- **Fixes Timing**: Set start or end date according to events on certain days, recuring dates or fixed schedules.\n- **Remote Backup**: Optionally uploads the video to a Linux server via SCP.\n- **Netatmo Integration**: Optionally reads weather information from a weather text file: Netatmo Weather.\n- **YouTube Integration**: Optionally uploads the video to YouTube with custom title and description placeholders: YouTube Upload.\n- **Time Override**: Overrides start and end times based on configurations in config.cfg, including descriptive text for overrides.\n\n## Prerequisites\n\n- Raspberry Pi with Bash shell\n- libcamera installed for image capture\n- A font file for the text overlay\n- hdate for calculating sunrise/sunset times\n- ffmpeg for video creation and text overlay\n- Netatmo script for weather lookups (if enabled)\n- Python and the youtube-upload script for YouTube uploads (if enabled)\n\n## Configuration\n\n- **config.example.cfg**: Contains all configurable parameters for the script. Rename to **config.cfg**\n- **DEBUG**:\n   - `debug`: Enables debug mode, which limits the number of pictures taken.\n   - `z`: Number of pictures to take in debug mode.\n   - `FORCE_SCP_UPLOAD` and `FORCE_YT_UPLOAD`: Forces uploads in debug mode.\n- **SCRIPT SETTINGS**:\n   - `INTERVAL`: Time interval between captures.\n   - `offSTART`, `offEND`: Time offset for starting before sunrise and ending after sunset.\n   - `RESW`, `RESH`: Image resolution.\n   - `DT`: Display time for each image in the video.\n   - `vidpref`: Prefix for the video file name.\n   - `LONG`, `LAT`, `TIZO`: Location settings for time calculations. TIZO is the hour offset of your UTC time. E.g., 1 for UTC+1.\n   - `TDIR`: Temporary directory for image storage.\n   - `FPATH`: Path to the font file for the text overlay.\n\nGet the longitude and latitude from [here](https://latitudelongitude.org/map-address-latlong) in decimal format.\n\n- **WEATHER**: Optionally include weather information in the overlay generated by this script: Netatmo Weather.\n- **LOCAL SERVER PATH**: SCP settings for remote backup (optional).\n- **YOUTUBE**: Optional. Settings for YouTube upload, including placeholders for dynamic content in titles and descriptions. Use this script for uploads: YouTube Upload.\n- **Override Times**:\n   - `override_times`: An array of strings to override start and end times with additional descriptive text.\n\n## Placeholders for YouTube Title, Description, and Script Text\n\n- `[SUNRISE]`: Replaced with the time of the sunrise (`$tsunrise`).\n- `[FIRSTLIGHT]`: Replaced with the time of the first light (`$first_light`).\n- `[START-OFFSET]`: Replaced with the time of the offset to the sunrise or first light (`$offSTART`).\n- `[SUNSET]`: Replaced with the time of the sunset (`$tsunset`).\n- `[SUNSET-OFFSET]`: Replaced with the time of the offset to the sunset (`$offEND`).\n- `[IMAGE-COUNT]`: Number of images created (`$i`).\n- `[IMAGE-COUNT-FORMATED]`: Number of images created with leading zero (`$formatted_i`).\n- `[INTERVAL]`: Interval at which pictures are taken (`$INTERVAL`).\n- `[HEIGHT]`: The height of the image (`$RESH`).\n- `[WIDTH]`: The width of the image (`$RESW`) - Note: in the code, this is referred to as LENGTH.\n- `[FRAMERATE]`: The framerate used (`$fr`).\n- `[FORMATTED_DATE]`: Formatted date as dd.mm.yyyy (`$tsfriendly`).\n- `[FORMATED_DATETIME]`: Replaced with the value of the variable ts (`$tsoverlay`).\n- `[INT-TEMP]`: Internal Temperature of device (`$obrdtmp`).\n- `[WEATHER]`: Weather information if enabled (`$weather`).\n- `[LATITUDE]`: Latitude of the location (`$LAT`).\n- `[LONGITUDE]`: Longitude of the location (`$LONG`).\n- `[PLAYLIST]`: YouTube playlist name or ID (`$PLAYLIST`).\n- `[YOUTUBE-CATEGORY]`: YouTube video category (`$YOUTUBE_CATEGORY`).\n- `[YOUTUBE-LANGUAGE]`: Language of the YouTube video (`$YOUTUBE_LANGUAGE`).\n- `[YOUTUBE-PRIVACY]`: Privacy status for the YouTube video (`$YOUTUBE_PRIVACY`).\n- `[YOUTUBE-TAGS]`: Tags for the YouTube video (`$YOUTUBE_TAGS`).\n- `[EVENT-DESCRIPTION]`: Description text for time override events (`$description`).\n\n## Usage\n\n### Setup\n\n1. Adjust the `config.cfg` according to your environment and preferences. Rename the example `config.example.cfg` to `config.cfg` to start with.\n2. Ensure all necessary software is installed.\n\n### Run the Script\n\n```bash\n./pilapse.sh\n```\n\n### Output\n\n- Images are stored in a timestamped folder in `/tmp`.\n- A video is created from these images with a text overlay.\n- Optionally, the video is uploaded to a server or YouTube.\n\n## Troubleshooting\n\nIf the script fails to start or operate, check if `config.cfg` exists at the correct path. Ensure all permissions are set correctly for script execution and file writing.\n\n## Acknowledgments\n\nThanks to the authors of libcamera, ffmpeg, hdate, and the youtube-upload script for their contributions to open-source software.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnoviceiii%2Ftimelapse","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnoviceiii%2Ftimelapse","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnoviceiii%2Ftimelapse/lists"}