{"id":15673818,"url":"https://github.com/lmammino/obs-countdown","last_synced_at":"2025-05-07T23:45:24.596Z","repository":{"id":225703764,"uuid":"766631243","full_name":"lmammino/obs-countdown","owner":"lmammino","description":"A CLI tool to write countdown timer files for OBS Studio","archived":false,"fork":false,"pushed_at":"2024-03-09T11:52:58.000Z","size":4456,"stargazers_count":9,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-05-07T23:45:17.446Z","etag":null,"topics":["cli","command-line","command-line-tool","countdown","countdown-timer","obs","rust"],"latest_commit_sha":null,"homepage":"https://loige.co","language":"Rust","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/lmammino.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":"2024-03-03T19:36:26.000Z","updated_at":"2025-01-22T01:46:13.000Z","dependencies_parsed_at":"2024-03-09T12:31:00.263Z","dependency_job_id":null,"html_url":"https://github.com/lmammino/obs-countdown","commit_stats":null,"previous_names":["lmammino/obs-countdown"],"tags_count":4,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lmammino%2Fobs-countdown","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lmammino%2Fobs-countdown/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lmammino%2Fobs-countdown/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lmammino%2Fobs-countdown/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/lmammino","download_url":"https://codeload.github.com/lmammino/obs-countdown/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":252973617,"owners_count":21834105,"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":["cli","command-line","command-line-tool","countdown","countdown-timer","obs","rust"],"created_at":"2024-10-03T15:42:15.547Z","updated_at":"2025-05-07T23:45:24.578Z","avatar_url":"https://github.com/lmammino.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# obs-countdown\n\n[![Build Status](https://github.com/lmammino/obs-countdown/actions/workflows/rust.yml/badge.svg)](https://github.com/lmammino/obs-countdown/actions/workflows/rust.yml)\n[![codecov](https://codecov.io/gh/lmammino/obs-countdown/graph/badge.svg?token=2a5OOr6Um4)](https://codecov.io/gh/lmammino/obs-countdown)\n[![Crates.io](https://img.shields.io/crates/v/obs-countdown.svg)](https://crates.io/crates/obs-countdown)\n\nA CLI tool to write countdown timer files for OBS Studio (written in Rust 🦀).\n\n---\n\n## 💁‍♂️ Use case\n\nIf you do live streams on platforms like Twitch or YouTube, you might want to have a countdown timer to show to your audience before the stream starts.\n\nIn OBS Studio, this is generally achieved by adding a text source linked to a file that contains the countdown timer. If you update the content of the file, OBS Studio will automatically update the text source and show the new content.\n\n`obs-countdown` is a CLI tool that allows you to generate countdown timer files that can be used in OBS Studio. It allows you to specify the countdown duration in a natural format (e.g. `3 minutes and 22 seconds`) and it generates a file that contains a countdown timer in the format `HH:MM:SS` (which you can customise!). The file content is kept in sync with the countdown, so OBS Studio can display the current value automatically.\n\nHere's a quick demo animation showing how `obs-countdown` can be used in conjunction with OBS Studio:\n\n![A demo gif showing how obs-countdown works in conjunction with OBS](./docs/demo.gif)\n\n\n## 🛠️ Installation\n\nYou can install `obs-countdown` using precompiled binaries (if available for your operative system and architecture) or by compiling it from source.\n\n### Using precompiled binaries\n\nYou can download precompiled binaries from the [releases page](https://github.com/lmammino/obs-countdown/releases) and place them in a directory that is in your `PATH`.\n\nIf you have [`cargo binstall`](https://github.com/cargo-bins/cargo-binstall) in your system, you can use it to install the latest version of `obs-countdown`:\n\n```bash\ncargo binstall obs-countdown\n```\n\nThis method has the advantage of automatically placing the binary in a directory that is in your `PATH`. Also, if a binary is not available for your operative system and architecture, `cargo binstall` will compile it for you (assuming you have all the necessary Rust build toolchain in your system).\n\n### Compiling from source\n\nIf you have the Rust toolchain installed in your system, you can compile `obs-countdown` from source using `cargo`:\n\n```bash\ncargo install obs-countdown\n```\n\n### Configuring OBS Studio\n\nTo configure OBS Studio to use the countdown timer generated by `obs-countdown`, you can follow these steps:\n\n1. Decide a location where you want to store the countdown timer file (e.g. `~/countdown.txt`).\n2. In OBS Studio, add a new [text source](https://obsproject.com/kb/text-sources) to your \"starting soon\" scene and link it to the file you have chosen (by ticking the option `From file` under `Text input mode`).\n3. Set the font, size, color, and position of the text source as you prefer.\n4. Before going live, run `obs-countdown` to generate the countdown timer file and keep it running in the background (e.g. `obs-countdown --file ~/countdown.txt 5 minutes`).\n\n\n## 👩‍🏫 Usage\n\n```bash\nobs-countdown [OPTIONS] [COUNTDOWN...]\n```\n\n### Arguments\n\n- `[COUNTDOWN]...`: Countdown duration expression (e.g. \"1h 30m 10s\"). The countdown expression system is very flexible, here are some examples of what is supported:\n  - `1h30m10s`: 1 hour, 30 minutes and 10 seconds\n  - `1h and 30mins`: 1 hour and 30 minutes\n  - `1h`: 1 hour\n  - `2h,10s`: 2 hours and 10 seconds\n  - `30m and 22secs`: 30 minutes and 22 seconds\n  - `1 hour, 30 minutes, and 10 seconds`: 1 hour, 30 minutes, and 10 seconds!\n\n### Options\n\n-  `-f, --file \u003cFILE\u003e`: Path to the file where to store the countdown. If the file does not exist, it will be created. If no file is provided, it will create a file called `obs-countdown.txt` in the current directory.\n- `-r, --refresh-rate \u003cREFRESH_RATE\u003e`: Refresh rate in milliseconds [default: `500`]\n- `--format \u003cFORMAT\u003e`: The format string to use to render the remaining time. [default: `%H:%M:%S`]. The format string is a string that can contain the following placeholders:\n  - `%h`: hours\n  - `%H`: hours, zero-padded\n  - `%m`: minutes\n  - `%M`: minutes, zero-padded\n  - `%s`: seconds\n  - `%S`: seconds, zero-padded \n- `--final-message \u003cFINAL_MESSAGE\u003e`:  The message to display when the countdown is over [default: `00:00:00`]\n- `-h, --help`: Print help\n- `-V, --version`: Print version\n\n\n## 🤌 Alternatives\n\nI have come across a few alternatives to `obs-countdown` that you might want to consider:\n\n  - [Snaz](https://github.com/JimmyAppelt/Snaz): GUI-based countdown streaming tools (including a countdown timer) for Windows.\n  - [My Stream Timer](https://apps.apple.com/us/app/my-stream-timer/id1460539461?mt=12): GUI-based app for macOS.\n\nIf you know of any other alternative, please feel free to contribute to this list!\n\n\n## 👷 Contributing\n\nEveryone is very welcome to contribute to this project.\nYou can contribute just by submitting bugs or suggesting improvements by\n[opening an issue on GitHub](https://github.com/lmammino/obs-countdown/issues).\n\n\n## 👩‍⚖️ License\n\nLicensed under [MIT License](LICENSE). © Luciano Mammino.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flmammino%2Fobs-countdown","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flmammino%2Fobs-countdown","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flmammino%2Fobs-countdown/lists"}