{"id":19364357,"url":"https://github.com/davidfstr/direncode","last_synced_at":"2026-05-16T04:03:59.013Z","repository":{"id":30619197,"uuid":"34174582","full_name":"davidfstr/direncode","owner":"davidfstr","description":"Encodes all video files from a source directory to a target directory, optionally continuously.","archived":false,"fork":false,"pushed_at":"2022-05-15T21:20:05.000Z","size":13,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-02-24T03:36:35.866Z","etag":null,"topics":["handbrake","video-encoding"],"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/davidfstr.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2015-04-18T17:05:02.000Z","updated_at":"2023-08-21T01:40:09.000Z","dependencies_parsed_at":"2022-09-03T21:31:12.095Z","dependency_job_id":null,"html_url":"https://github.com/davidfstr/direncode","commit_stats":null,"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/davidfstr%2Fdirencode","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/davidfstr%2Fdirencode/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/davidfstr%2Fdirencode/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/davidfstr%2Fdirencode/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/davidfstr","download_url":"https://codeload.github.com/davidfstr/direncode/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":240483765,"owners_count":19808636,"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":["handbrake","video-encoding"],"created_at":"2024-11-10T07:37:11.411Z","updated_at":"2026-05-16T04:03:58.946Z","avatar_url":"https://github.com/davidfstr.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# direncode\n\nEncodes all video files in a source directory to a destination directory. Optionally, the source directory will be watched continuously for changes and any new files will be encoded.\n\nThis behavior is useful for setting up a video encoding pipeline where one directory's contents are continuously encoded to another directory.\n\n## Requirements\n\n* Operating System:\n    * macOS 10.15.7 (Catalina) or later\n    * Linux \u0026mdash; probably works, but untested\n    * Windows \u0026mdash; probably works, but untested\n* [Python] 3.7 or later\n* [hbencode] 1.1 or later\n* [watchdog] 0.8.3 or later\n\n[Python]: http://www.python.org\n[hbencode]: https://github.com/davidfstr/hbencode\n[watchdog]: https://pypi.python.org/pypi/watchdog\n\n## Installation\n\n1. Install and configure all requirements mentioned above.\n    * In particular [hbencode] has some required configuration.\n    * [watchdog] can usually be installed with `pip install watchdog`.\n2. Copy `direncode.py` to somewhere in your system path.\n\n## Usage\n\nEncode all files in directory `/srcdir` to directory `/dstdir` using:\n\n```\ndirencode.py /srcdir /dstdir\n```\n\nContinously encode all files that appear in `/srcdir` to directory `/dstdir` until you interrupt the program with Control-C:\n\n```\ndirencode.py --watch /srcdir /dstdir\n```\n\nContinously encode from `/srcdir` to `/dstdir`, and additionally synchronize deletions that occur in `/srcdir` to `/dstdir`:\n\n```\ndirencode.py --watch --delete /srcdir /dstdir\n```\n\nDisplay full usage information by invoking `direncode.py` with no arguments:\n\n```\nsyntax: direncode.py [\u003coptions\u003e] SOURCE_DIR DESTINATION_DIR\n    \n    Options:\n        -w, --watch             Continuously watch the source directory\n                                and continue synchronizing both directories.\n        -d, --delete            Delete extraneous files from destination.\n```\n\n## Support\n\nIf you run into problems or have questions, feel free to file a\n[bug] or [contact] me.\n\n[contact]: http://dafoster.net/about#contact\n[bug]: https://github.com/davidfstr/direncode/issues\n\n## License\n\nThis software is licensed under the [MIT License].\n\n[MIT License]: https://github.com/davidfstr/direncode/blob/master/LICENSE.txt\n\n## Release Notes\n\n* 1.1\n\t* Supports `--delete` option to additionally synchronize deletes.\n* 1.0\n\t* Initial version.\n\t* Supports `--watch` option for continuous synchronization.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdavidfstr%2Fdirencode","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdavidfstr%2Fdirencode","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdavidfstr%2Fdirencode/lists"}