{"id":23611413,"url":"https://github.com/Groovbox/pyAMLL","last_synced_at":"2025-08-30T17:30:37.126Z","repository":{"id":269596752,"uuid":"907808532","full_name":"Groovbox/pyAMLL","owner":"Groovbox","description":"Tool for creating syllable-synced lyrics for songs, within in your terminal!","archived":false,"fork":false,"pushed_at":"2025-01-13T08:48:20.000Z","size":378,"stargazers_count":2,"open_issues_count":3,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-04-09T14:33:43.519Z","etag":null,"topics":["apple-music","music","python","python-rich","python-textual"],"latest_commit_sha":null,"homepage":"","language":"Python","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/Groovbox.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","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-24T12:46:11.000Z","updated_at":"2025-01-13T08:27:46.000Z","dependencies_parsed_at":"2025-01-11T05:23:33.728Z","dependency_job_id":"6ad78db0-e8fb-4d22-a2fd-7623c2c8b9a5","html_url":"https://github.com/Groovbox/pyAMLL","commit_stats":null,"previous_names":["sortedcord/pyttml","groovbox/pyttml","groovbox/pyamll"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/Groovbox/pyAMLL","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Groovbox%2FpyAMLL","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Groovbox%2FpyAMLL/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Groovbox%2FpyAMLL/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Groovbox%2FpyAMLL/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Groovbox","download_url":"https://codeload.github.com/Groovbox/pyAMLL/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Groovbox%2FpyAMLL/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":272880928,"owners_count":25008922,"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","status":"online","status_checked_at":"2025-08-30T02:00:09.474Z","response_time":77,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":["apple-music","music","python","python-rich","python-textual"],"created_at":"2024-12-27T16:15:22.494Z","updated_at":"2025-08-30T17:30:37.120Z","avatar_url":"https://github.com/Groovbox.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# pyAMLL\n\npyAMLL is a tool that can be used to manually sync up lyrics of a song to its timestamps (down to the syllable). \n\nThe main source of inspiration comes from Apple Music with their syllable-synced lyrics. The end goal is to make a tool that generates file that are compliant with another tool by @Steve-Xmh - [amll-ttml-tool](https://github.com/Steve-xmh/amll-ttml-tool).\n\nThis works with a TUI with the help of [Textual](https://github.com/Textualize/textual) which is a python framework used to create interfaces within the TUI.\n\n![Sync Screen](docs/assets/img/demo_sync.png)\n\n## Installation\n\n```sh\ngit clone https://github.com/sortedcord/pyAMLL.git\n```\n\npyAMLL makes use of [poetry](https://python-poetry.org/docs/#installing-with-the-official-installer) as package manager. After installing poetry on your system, just install the tool:\n\n```sh\ncd pyAMLL\npoetry install\n```\n\nAnd then run the `tui.py` file\n\n```sh\npoetry run python pyAMLL/tui.py\n```\n\n## Usage\n\n### Editing Lyrics\n\npyAMLL consists of an `Edit` tab where you can add your lyrics either by using the in-built editor or adding them from a text file.\n\n![Edit Lyrics](docs/assets/img/edit_lyrics.png)\n\nA single word can be split into multiple parts (syllables) and timed accordingly. This can be done by using `/`\n\nFor example, `heart/beats` splits into `heart` and `beats` and timed as per the song.\n\n![Split Words in Sync](docs/assets/img/word_split.png)\n\n### Loading a music file\n\nBefore using the controls, you need to load in music by clicking on the folder icon in the extreme bottom right corner and then entering the location of the music file. You can then click on play to play the music file which also serves the purpose to initialize a player instance.\n\nOther available controls include seeking forward or backward (by 5 seconds), increasing/decreasing speed, seeking to a portion of the track, volume controls.\n\n### Syncing Lyrics\n\nWhen Lyrics have been edited, they can be synced to the song on the sync screen. This has a word carousel on top which shows which word (or part of word) is currently being synced along with its start and end timestamps.\n\nYou can move the active word by pressing the arrow buttons just below the carousel. The `F` Button sets the `start_time` of the word as the current timestamp and `H` sets the `end_time` of the word as the current timestamp. The `G` Button sets the `end_time` of the word as the current timestamp then moves to the next word and sets its `start_time` as current timestamp.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FGroovbox%2FpyAMLL","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FGroovbox%2FpyAMLL","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FGroovbox%2FpyAMLL/lists"}