{"id":15777113,"url":"https://github.com/healeycodes/py-looper","last_synced_at":"2025-03-31T15:37:49.038Z","repository":{"id":112378212,"uuid":"142712322","full_name":"healeycodes/py-looper","owner":"healeycodes","description":"Create long videos from a loopable audio track and a static image - resulting in a video file that dynamically stretches to never cut off your track :heart:.","archived":false,"fork":false,"pushed_at":"2018-08-21T13:00:22.000Z","size":123,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2024-10-05T17:42:32.326Z","etag":null,"topics":[],"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/healeycodes.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null}},"created_at":"2018-07-28T21:49:50.000Z","updated_at":"2019-06-27T06:26:27.000Z","dependencies_parsed_at":"2023-06-25T22:59:31.955Z","dependency_job_id":null,"html_url":"https://github.com/healeycodes/py-looper","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/healeycodes%2Fpy-looper","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/healeycodes%2Fpy-looper/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/healeycodes%2Fpy-looper/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/healeycodes%2Fpy-looper/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/healeycodes","download_url":"https://codeload.github.com/healeycodes/py-looper/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246490786,"owners_count":20786059,"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-10-04T17:42:39.532Z","updated_at":"2025-03-31T15:37:49.012Z","avatar_url":"https://github.com/healeycodes.png","language":"Python","readme":"## py-looper\n\nCreate long videos from a loopable audio track and a static image - resulting in a video file that dynamically stretches to never cut off your track :heart:.\n\n\u003cbr\u003e\n\n### Pre-installation\n\npython - https://www.python.org. Tested with Python v3.6.5 (and assumed to not work with versions prior to this). Python is packaged with Mac OS X and Linux but not Windows. Check your Python version if you run into issues (`python -v`).\n\nffmpeg - https://www.ffmpeg.org/ - is required but should be installed automatically if not present. It's also packaged with some OSes and other programs often require it.\n\npip - https://pip.pypa.io/en/stable/installing/ - is required. It's the standard Python package manager and is sometimes installed during Python's installation.\n\n\u003cbr\u003e\n\n### Installation\n\nNavigate to the py-looper folder via terminal or cmd `cd py-looper`\n\nInstall dependencies via `pip install -r requirements.txt`.\n\n\u003cbr\u003e\n\n### Running\n\n`cd py-looper`\n\n`python main.py [image] [audio] [min_length] [movie_name]`\n\ne.g., `python main.py my_image.png my_audio.mp3 1.0 my_movie` creates `[movie_name].mp4` in the py-looper directory.\n\nThe resulting video file will have the same dimensions as the supplied `[image]`.\n\nSpaces in these arguments will require the argument to be passed with `'` single quote marks on most terminals. E.g., `'My Image File.png'`. Remember you can use tab to autocomplete image/audio filenames and locations.\n\n\u003cbr\u003e\n\n#### `[image]`\n\nAny picture file (png, tiff, jpeg, etc.)\n\n#### `[audio]`\n\nAny audio file that loops perfectly.\n\n#### `[min_length]`\n\nFormatted as `Minutes.Seconds`. One minute is `1.0`. Thirty seconds is `0.30`. Note: the preceding `0.` is required when specifiying a time less than one minute.\n\nThe program will loop the audio file until the resulting video is at least as long as the min_length parameter.\n\n#### `[movie_name]`\n\nAny string, e.g., `hello` or `test-123`. The file will be saved as MP4.\n\n\u003cbr\u003e\n\n#### `[location]` (not required)\n\n`python main.py [image] [audio] [min_length] [movie_name] [location]`\n\nA directory path to save the video to. E.g., `C:/videos`. Can be set to an empty string like `''` or `\"\"`. Folders will be created recursively. This argument is not required to create videos but without it the files will be saved whereever you launched the script from.\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhealeycodes%2Fpy-looper","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhealeycodes%2Fpy-looper","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhealeycodes%2Fpy-looper/lists"}