{"id":25831604,"url":"https://github.com/msampathkumar/audio2videomaker","last_synced_at":"2026-05-16T07:02:27.653Z","repository":{"id":279117705,"uuid":"937646366","full_name":"msampathkumar/Audio2VideoMaker","owner":"msampathkumar","description":"A pet project to convert simple audio file to video","archived":false,"fork":false,"pushed_at":"2025-02-23T21:42:06.000Z","size":5968,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-02-23T22:17:55.497Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"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/msampathkumar.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":"2025-02-23T15:19:21.000Z","updated_at":"2025-02-23T21:42:09.000Z","dependencies_parsed_at":"2025-02-23T22:17:58.289Z","dependency_job_id":"8630cc11-e4ea-43e7-bed1-46744f6e1f52","html_url":"https://github.com/msampathkumar/Audio2VideoMaker","commit_stats":null,"previous_names":["msampathkumar/audio2videomaker"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/msampathkumar%2FAudio2VideoMaker","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/msampathkumar%2FAudio2VideoMaker/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/msampathkumar%2FAudio2VideoMaker/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/msampathkumar%2FAudio2VideoMaker/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/msampathkumar","download_url":"https://codeload.github.com/msampathkumar/Audio2VideoMaker/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":241232377,"owners_count":19931306,"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":"2025-02-28T20:50:35.891Z","updated_at":"2026-05-16T07:02:27.636Z","avatar_url":"https://github.com/msampathkumar.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Audio2VideoMaker: Transform Audio into Engaging Videos\n\n**Audio2VideoMaker** is a powerful Python-based tool that transforms your audio files into captivating videos. It achieves this by synchronizing a sequence of text-based images with your audio, creating a dynamic visual experience that complements the audio content.  This project is perfect for creating:\n\n* **Lyric videos:** Display song lyrics in sync with the music.\n* **Podcast videos:** Add visual interest to your podcast episodes.\n* **Educational content:** Combine audio explanations with relevant text and visuals.\n* **Social media content:** Create engaging videos for platforms like YouTube, Instagram, and TikTok.\n* **Presentations**: Create a video presentation with audio and text.\n\n## Key Features\n\n* **Audio-Driven Video Generation:** Automatically generates a video based on the duration of your audio file.\n* **Text-Based Image Creation:** Creates images with customizable text, font, color, and layout.\n* **Multi-Image Support:** Supports multiple images with varying durations, allowing for a dynamic video flow.\n* **Configurable via YAML:** Easily customize the video's content, timing, and appearance using a simple YAML configuration file.\n* **Error Handling:** Robust error handling to catch issues like missing files or text exceeding image boundaries.\n* **Logging:** Detailed logging to track the video creation process and identify potential problems.\n* **Status Indicators:** Clear status indicators (e.g., [✅ OK!], [⏳️WIP]) in the logs to show the progress and success of operations.\n* **Customizable:** Change the font, font size, background color, text color, padding, and more.\n\n## Getting Started\n\n### Installation\n\n1. **Clone the Repository:**\n\n   ```shell\n   git clone git@github.com:msampathkumar/Audio2VideoMaker\n   git cd Audio2VideoMaker/app\n   ```\n\n1. **Create a Virtual Environment (Recommended):**\n\n   It's highly recommended to use a virtual environment to isolate the project's dependencies.\n\n   ```shell\n   python3 -m venv venv\n   source venv/bin/activate\n   ```\n\n1. **Install Dependencies:**\n\n   ```shell\n   pip install -r requirements.txt\n   ```\n\n### Configuration\n\n1.  **Create or Modify `config.yaml`:**\n\n    The `data/sample_data/config.yaml` file is your control center. Here's a breakdown of its structure:\n\n      ```text\n      # Add your audio file here\n      audio: tell-me-the-truth-260010.mp3 # Replace with your audio file name (must be in the data folder)\n      \n      # Add your output path here\n      video: tell-me-the-truth-260010.mp4 # Replace with your desired output video name\n      \n      # Add your text information here\n      images:\n          # Add your first image data\n          - duration: 15 # Duration in seconds for this image\n            text: |\n              Welcome to Audio-Video.\n              I hope that this tool is useful to you.\n                              Just don't be evil for anyone!\n              Thank you, Author\n          # Add your next image data\n          - duration: 30 # Duration in seconds for this image\n            text: Hello world!\n          # Add your next image data\n          - duration: 15 # Duration in seconds for this image\n            text: \"Thank you                              Thank you\\n\\n\\n\\n\\n\\n\\n\\n\\n\\nThank you                              Thank you\"\n      # Add your output path here\n      comment: Thank you, Author # Any additional comments\n      ```\n\n *   **`audio`:** The name of your audio file (e.g., `my_audio.mp3`). Place your audio file in the `data/sample_data` directory.\n *   **`video`:** The desired name of the output video file (e.g., `my_video.mp4`).\n *   **`images`:** A list of image configurations. Each image configuration has:\n     *   **`duration`:** The duration (in seconds) for which the image will be displayed.\n     *   **`text`:** The text to be displayed on the image. Use `|` to write multiline text.\n * **`comment`**: Any additional comments.\n\n1. **Add your audio file**\n    * Add your audio file to `data/sample_data` folder.\n   \n1. **Add your text**\n    * Add your text to `config.yaml` file.\n\n### Running the Application\n\n**Generate an Image:**\n\n    ```shell\n    python main.py image data/sample_data/config. yaml\n    ```  \n\nThis command will create an image(s) based on the configuration in `config.yaml`.\n\n**Generate a Video:**\n\n    ```shell\n    python main.py video data/sample_data/config. yaml\n    ```\n \nThis command will create a video based on the configuration in `config.yaml`.\n\n### Testing\n\n1. **Run the test script**\n\n    ```\n    ./test.sh\n    ```\n\n## Project Structure\n\n```text\nAudio2VideoMaker/\n├── app/\n    │\n    ├── config.py # Configuration settings (font, image dimensions, etc.)\n    ├── image.py # Image generation logic\n    ├── main.py # Main application entry point\n    ├── text_manager.py # Text validation and management\n    ├── utils.py # Utility functions and classes (e.g., Status)\n    ├── video.py # Video generation logic \n    ├── requirements.txt # Project dependencies\n    └test.sh # Test script\n├── data/ \n    └── sample_data/\n        ├── config.yaml # Sample configuration file\n        └── tell-me-the-truth-260010. mp3 # Sample audio file\n└── README.md # This file\n```\n\n# Credits \u0026 Sources\n\n*   **Fonts:** Google Fonts (You can download and use any font you like).\n\n## Contributing\n\nIf you want to contribute to the project, please follow these steps:\n\n1. Fork the repository.\n2.  Create a new branch for your feature or bug fix.\n3.  Make your changes and commit them.\n4.  Push your changes to your fork.\n5.  Create a pull request to the original repository.\n\n## License\n\nMIT\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmsampathkumar%2Faudio2videomaker","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmsampathkumar%2Faudio2videomaker","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmsampathkumar%2Faudio2videomaker/lists"}