{"id":18158297,"url":"https://github.com/sam0x17/video-manager","last_synced_at":"2025-05-07T03:06:04.841Z","repository":{"id":82773162,"uuid":"247392470","full_name":"sam0x17/video-manager","owner":"sam0x17","description":"a tool for automatically optimizing files in your video library using ffmpeg","archived":false,"fork":false,"pushed_at":"2024-07-25T16:29:12.000Z","size":12,"stargazers_count":3,"open_issues_count":1,"forks_count":1,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-03-14T14:21:16.230Z","etag":null,"topics":["crystal","crystal-shard","crystal-shards","ffmpeg","ffmpeg-wrapper","plex","plex-media-server","video-encoding"],"latest_commit_sha":null,"homepage":null,"language":"Crystal","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/sam0x17.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":"2020-03-15T03:09:48.000Z","updated_at":"2024-07-25T16:29:15.000Z","dependencies_parsed_at":null,"dependency_job_id":"3e313707-396b-4843-b025-d556bbc9c491","html_url":"https://github.com/sam0x17/video-manager","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/sam0x17%2Fvideo-manager","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sam0x17%2Fvideo-manager/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sam0x17%2Fvideo-manager/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sam0x17%2Fvideo-manager/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/sam0x17","download_url":"https://codeload.github.com/sam0x17/video-manager/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246423494,"owners_count":20774796,"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":["crystal","crystal-shard","crystal-shards","ffmpeg","ffmpeg-wrapper","plex","plex-media-server","video-encoding"],"created_at":"2024-11-02T07:06:12.280Z","updated_at":"2025-03-31T23:31:59.496Z","avatar_url":"https://github.com/sam0x17.png","language":"Crystal","funding_links":[],"categories":[],"sub_categories":[],"readme":"# video-manager\nThis simple crystal program will loop over the list of directories you tell it\nto via the config file. For each video file in the directory, it will optimize\nthe file according to the ffmpeg encoding settings listed in your config file.\nEach file is copied to /tmp before conversion begins, and all file changes\nare done atomically, meaning the program can be interrupted at any point and\nyou won't corrupt or lose any data. You can also configure the number of\nparallel conversions that will run at once. The default ffmpeg settings\nare designed to allow for fast seeking on a Plex server.\n\nThe program will save the hashes (based on filename, file size, and the ffmpeg\noptions that were used) of each file it has already optimized in the config\nfile so if it is re-run those same files will not be converted again. If you\nmake a change to your ffmpeg options, all files will be re-converted since\ntheir hashes will be invalidated.\n\nOn a very good CPU (i.e. a 9900k), 8 threads seems to be the sweet spot.\n\nThe config file is located at `~/.video-manager-settings.json`. The first\ntime the program is run a default config will be created and you can further\nconfigure things from there.\n\nOnly linux and macos are supported. Once windows support is added to crystal\nI may update this to work on windows if running ffmpeg on windows is even\nfeasible, which I don't know.\n\n## Installation\n\n1. download and install crystal via https://crystal-lang.org/install/\n2. clone the repo `git clone git@github.com:sam0x17/video-manager.git`\n3. `cd` into the repo (`cd video-manager`)\n4. run `shards install`\n5. run `shards build --release`\n\nThe binary is now located in the `bin` folder. You can run it directly,\nor install it somewhere more permanent on your system like `/usr/bin`.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsam0x17%2Fvideo-manager","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsam0x17%2Fvideo-manager","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsam0x17%2Fvideo-manager/lists"}