{"id":16380553,"url":"https://github.com/davis-software/aivd","last_synced_at":"2026-05-10T03:14:09.295Z","repository":{"id":190957015,"uuid":"683648737","full_name":"Davis-Software/aivd","owner":"Davis-Software","description":"Find audio offset in video files' audio tracks","archived":false,"fork":false,"pushed_at":"2024-01-19T01:03:46.000Z","size":30,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-06-20T16:11:26.927Z","etag":null,"topics":["audio","click","colorama","detection","ffmpeg","indexing","intro","movies","scipy","series","streaming-tool","utility","video","video-utilities"],"latest_commit_sha":null,"homepage":"https://projects.software-city.org/p/aivd","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Davis-Software.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":"2023-08-27T08:56:50.000Z","updated_at":"2024-01-11T01:58:37.000Z","dependencies_parsed_at":"2024-01-11T03:54:44.347Z","dependency_job_id":"6de6f5bc-143f-4fad-990a-fa035a1bbc1a","html_url":"https://github.com/Davis-Software/aivd","commit_stats":null,"previous_names":["davis-software/aivd"],"tags_count":3,"template":false,"template_full_name":null,"purl":"pkg:github/Davis-Software/aivd","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Davis-Software%2Faivd","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Davis-Software%2Faivd/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Davis-Software%2Faivd/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Davis-Software%2Faivd/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Davis-Software","download_url":"https://codeload.github.com/Davis-Software/aivd/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Davis-Software%2Faivd/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":260976921,"owners_count":23091528,"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":["audio","click","colorama","detection","ffmpeg","indexing","intro","movies","scipy","series","streaming-tool","utility","video","video-utilities"],"created_at":"2024-10-11T03:51:45.585Z","updated_at":"2026-05-10T03:14:09.266Z","avatar_url":"https://github.com/Davis-Software.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Audio-In-Video-Detector AIVD\n\n\u003e Developed by [Davis_Software](https://github.com/Davis-Software) \u0026copy; 2024\n\n![GitHub release (latest by date)](https://img.shields.io/github/v/release/Davis-Software/aivd?style=for-the-badge)\n![GitHub issues](https://img.shields.io/github/issues-raw/Davis-Software/aivd?style=for-the-badge)\n![GitHub closed issues](https://img.shields.io/github/issues-closed/Davis-Software/aivd?style=for-the-badge)\n![GitHub all releases](https://img.shields.io/github/downloads/Davis-Software/aivd/total?style=for-the-badge)\n![GitHub](https://img.shields.io/github/license/Davis-Software/aivd?style=for-the-badge)\n\n### What is AIVD?\nAIVD or Audio-In-Video-Detector finds a specified audio file in the audio track\nof video files and returns the audio offset.\n\nThus, it can for example be used to find the intro of a tv show in its episodes.\n\n### Requirements\n* currently works on linux only\n* `python3.5 - python3.7` only (scipy)\n* `ffmpeg` is required\n* development requirements can be installed with `pip3 install -r requirements.txt`\n\n### Usage\n```shell\n    aivd [OPTIONS] INPUT_FILE DIRECTORY\n\n        Find the INPUT_FILE audio file in the specified video or audio files in a\n        folder and return the time index.\n        \n        INPUT_FILE: The audio file to search for.\n        DIRECTORY: The directory with the video or audio files to search in.\n```\n\n| Option               | Data Type            | Description                                                                         | Default                                          |\n|----------------------|----------------------|-------------------------------------------------------------------------------------|--------------------------------------------------|\n| `-r`, `--recursive`  | flag                 | Search recursively in the specified directory.                                      |                                                  |\n| `-e`, `--extension`  | `string`             | The extension of the video/audio files to search in. Can be a comma separated list. | `\"mp4,mkv,avi,mov,wmv,mp3,wav,flac,ogg,m4a,wma\"` |\n| `-x`, `--exclude`    | `string`             | Exclude the specified extension from the search. Can be a comma separated list.     | `\"\"`                                             |\n| `-t`, `--time`       | `integer`            | How many seconds of the input audio file to search for.                             | `-1` (meaning the entire file)                   |\n| `-w`, `--window`     | `integer`            | The window size in seconds to search for the audio file.                            | `60`                                             |\n| `-f`, `--format`     | `json \\| txt \\| raw` | The output format.                                                                  | `\"txt\"`                                          |\n| `-c`, `--threads`    | `integer`            | The number of CPU threads to use.                                                   | half of system cpu threads                       |\n| `--ffmpeg`           | `string`             | The path to the ffmpeg executable.                                                  | from system path                                 |\n| `--ffmpeg-processes` | `integer`            | The number of ffmpeg processes to run at the same time.                             | `1`                                              |\n| `--ffmpeg-args`      | `string`             | Additional arguments to pass to ffmpeg. Best pass them in quotes.                   | `None`                                           |\n| `--no-clean`         | flag                 | Do not clean up temporary files.                                                    |                                                  |\n| `--silent`           | flag                 | Do not print anything but the final output to the console.                          |                                                  |\n| `--debug`            | flag                 | Print debug information to the console.                                             |                                                  |\n| `--dry-run`          | flag                 | Do not run the program, just print the parameters.                                  |                                                  |\n| `--version`          | flag                 | Print the version number and exit.                                                  |                                                  |\n| `--legacy`           | flag                 | Use the legacy cli.                                                                 |                                                  |\n| `--help`             | flag                 | Show help message and exit.                                                         |                                                  |\n\n### Legacy CLI\n```shell\n    aivd --legacy [-h] --find-offset-of \u003caudio file\u003e [--within \u003cfolder\u003e]\n            [--extension \u003cfile extension\u003e] [--recursive \u003cboolean\u003e]\n            [--extension-skip \u003cfile extension\u003e] [--window \u003cseconds\u003e]\n            [--log-level \u003clevel\u003e] [--raw \u003cboolean\u003e] [--ffmpeg \u003cpath\u003e]\n```\n\n| Option                             | Type      | Description                                     | Default             | Required |\n|------------------------------------|-----------|-------------------------------------------------|---------------------|----------|\n| `--legacy`                         | flag      | Needed to use the legacy cli                    |                     | yes      |\n| `-h` or `--help`                   | flag      | Display the help dialog                         |                     | no       |\n| `--find-offset-of \u003caudio file\u003e`    | `string`  | Audio file to search for                        |                     | yes      |\n| `--within \u003cfolder\u003e`                | `string`  | Folder path with video files to search in       | `\".\"`               | no       |\n| `--recursive \u003cboolean\u003e`            | `boolean` | Recursively traverse specified folder           | `false`             | no       |\n| `--extension \u003cile extension\u003e`      | `string`  | Only search in the files with this extension    | `\"*\"`               | no       |\n| `--extension-skip \u003cile extension\u003e` | `string`  | Skip the files with this extension              | `\"\"`                | no       |\n| `--window \u003cseconds\u003e`               | `integer` | Only search in the first n seconds of the files | `60`                | no       |\n| `--log-level \u003clog level\u003e`          | `string`  | Set the applications log level                  | `\"info\"`            | no       |\n| `--raw \u003cboolean\u003e`                  | `boolean` | Set raw output (as JSON)                        | `false`             | no       |\n| `--ffmpeg \u003cpath\u003e`                  | `string`  | Path to a custom ffmpeg installation            | `\"/usr/bin/ffmpeg\"` | no       |\n\n### Compilation\nYou can use pyinstaller to generate a binary in `./dist/`\n```shell\n    pyinstaller aivd.spec\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdavis-software%2Faivd","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdavis-software%2Faivd","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdavis-software%2Faivd/lists"}