{"id":48472182,"url":"https://github.com/sosie-js/peagisub-vs","last_synced_at":"2026-04-07T06:36:37.482Z","repository":{"id":247609724,"uuid":"825968205","full_name":"sosie-js/peagisub-vs","owner":"sosie-js","description":"Lua Helper to set path vars on python aegisub-vs.py from  paths detected on lua side by aegisub","archived":false,"fork":false,"pushed_at":"2024-08-17T21:24:30.000Z","size":868,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"1.7.0","last_synced_at":"2024-08-18T18:28:31.664Z","etag":null,"topics":["aegisub-script","bridge","configuration","lua","python","sos","subtitles","tools","vapoursynth","video"],"latest_commit_sha":null,"homepage":"http://sosie.sos-productions.com","language":"Lua","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/sosie-js.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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":"2024-07-08T21:21:15.000Z","updated_at":"2024-08-17T21:24:33.000Z","dependencies_parsed_at":"2024-08-14T12:51:19.987Z","dependency_job_id":null,"html_url":"https://github.com/sosie-js/peagisub-vs","commit_stats":null,"previous_names":["sosie-js/peagisub-vs"],"tags_count":7,"template":false,"template_full_name":null,"purl":"pkg:github/sosie-js/peagisub-vs","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sosie-js%2Fpeagisub-vs","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sosie-js%2Fpeagisub-vs/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sosie-js%2Fpeagisub-vs/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sosie-js%2Fpeagisub-vs/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/sosie-js","download_url":"https://codeload.github.com/sosie-js/peagisub-vs/tar.gz/refs/heads/1.7.0","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sosie-js%2Fpeagisub-vs/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31503392,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-07T03:10:19.677Z","status":"ssl_error","status_checked_at":"2026-04-07T03:10:13.982Z","response_time":105,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":["aegisub-script","bridge","configuration","lua","python","sos","subtitles","tools","vapoursynth","video"],"created_at":"2026-04-07T06:36:37.424Z","updated_at":"2026-04-07T06:36:37.474Z","avatar_url":"https://github.com/sosie-js.png","language":"Lua","funding_links":[],"categories":[],"sub_categories":[],"readme":"\n![peagisub banner](https://github.com/sosie-js/peagisub-vs/blob/1.7.0/peagisub.png#)\n## News\n\nVersion 1.7 removes aegisub mock that broke builtin aegisub.lua, crashing peagisub with an insufficient error message\nIt warns the user to create the mandatory configfile if not yet exists using command peagisub --createconfigfile\n\nWith 1.6, dump logging is working and I have been able to track the bug that corrupt the final vsvars.conf giving\nnil when fetching vapoursynth conf vars. An advanced aegiub Mock has been provided in src/aegisub.lua, \nit emulates aegisub when script is launched outside aegisub and speeds devs.It uses get_fps.lua that rely on calc.lua and ffprobe need to be installed to make it work.\n\nPrior version 1.5, code was still experimental due to a lack of knowledge in luarock integration. Thanks to advices and answers to my questions from [luke](https://github.com/gvvaughan/luke/pull/6) and [luarocks](https://github.com/luarocks/luarocks/discussions/1698) authors  - big thanks to them -  and tenacity, I finally converged to the pattern of a command [peagisub](src/peagisub) calling a builtin [peagisub.lua](src/peagisub.lua) \n\nThis was without loosing in mind that this last one should be recognized as macro script in aegisub. Doing this allow to fix and trigger either from aegisub macro graphically or from script lua/python or shell.  My need was to get aegisub env into vapoursynth script [aegisub-vs.py](https://github.com/arch1t3cht/Aegisub/blob/feature/automation/vapoursynth/aegisub_vs.py) from arch1t3cht aegisub fork to make it work outside too making video production easier. \n\n\u003eThis version put an end to the BIG lock issue I had  when [run_luarocks_cmd wrapper](https://github.com/luarocks/luarocks/issues/1694) for python. A wrapper is in the [doc](doc/Usage.md).\n\n\n## Description\n\nThis is the lua companion for aegisub to retrieve path specifiers as well vapoursynth vars to be able to setup the aegisub-vs python bridge provided in the [Aegisub forked version from Arch1t3cht](https://github.com/arch1t3cht/Aegisub/releases) BIG THANKS to @arch1t3cht.\nInitially I put the script in ?user/automation/autoload but I need to trigger it without aegisub installed as a module from python side.\n\n## Installation\n\nFirst [install LuaRocks for your OS](https://github.com/luarocks/luarocks/wiki/)\nNote : you may not need to compile it from sources as suggested in the wiki on Ubuntu/Debian just do\n```shell\nsudo apt install lua luarocks\n```\nif you have already a working luarock environment  you need just do \n```shell\nluarocks install peagisub\n```\nit will install the [published package can be found on Luarocks](https://luarocks.org/modules/sosie-js/peagisub)\n\n**however i recommend to install it in the user tree with**\n`luarocks install --local peagisub`\n\nThere are scripts I provided for this are for linux only Ubuntu/debian based. The goal is to install all in the user tree **including luarocks itself upgraded to the latest version**. \n\n-Launch in the order:\n0-uninstall-previous-luarocks.sh\n1-install-latest-luarocks.sh\n\n-then 2-install-dev.sh\n\n## Usage\n\n### Aegisub\n\n-Copy src/peagisub.lua  as aegisub_vs.lua into your automation folder ?user/automation/autoload\nReload aegisub , you will see an entry \"Generate aegisub config file\" . The script\nis triggered on start , clicking on the entry will show where the vsvars.json was saved.\n\n-A autogenerated with a [Dummy Vapoursynth failback](http://www.vapoursynth.com/doc/installation.html#linux)  \nif vapoursynth.conf not found. In this case change tha UserPluginFir and SyStemPluginDir\nto match your vapoursynth configuration. I recommend this in linux [discussing it here](https://github.com/arch1t3cht/Aegisub/discussions/147#discussioncomment-10073837) :\nthe UserpluginDIr path standard be ?user/automation\nthe SystemPluginDir $prefix/vapoursynth with $prefix=/usr/local on linux avoiding env gaz factories\n\n\u003e**NEW in 1.6: \nFix the bug in aegisub that gives nil because vapoursynth was not read in certain cases \nIMPORTANT NOTE: by answering to yes to the first question in aegisub macro script or from shell with   `peagisub --fixconfigfile`** \nThe script does not move your  vapoursynth plugin files , you wil have to do it yourself.\n\n### Shell \n\nYou can have the available commands with  `peagisub --help`\nI also draw [graphs usage](https://github.com/sosie-js/peagisub-vs/blob/1.6.0/doc/Usage.md) showing communication between the command and the builtin module. \n\n### Scite\n\nOpen test/aegisub-vs.py  in [scite](https://scintilla.org/SciTE.html) and press [F5]\nyou should have a vapoursynth.conf path content in your output pane meaning it works, \n\n## Dev / test\n\nTo understand and fix or add new features, I have made an overview\n\n![peagisub overview](https://github.com/sosie-js/peagisub-vs/blob/1.6.0/doc/Overview.png#)\n\n-test/peagisub_dev.lua:  is a symlik from src/peagiusb so [scite](https://scintilla.org/SciTE.html) recognizes it as lua script so easier to modify and fix\n-test/peagisub_testfail.lua: shows the limitation of luarocks loader\n\n-in shell, you can bypass the peagisub command and access directly to the builtin API for tests using\n```shell\neval \"$(luarocks path --bin)\" \u0026\u0026 lua -l peagisub -e 'print(peagisub.version); os.exit()'\n```\nsee autogenerated  [ldoc for the API](doc/index.html)\n\n## Requirements\n\n- [Lua](http://www.lua.org), version 5.1 or up\n- [LuaRocks](https://luarocks.org), any recent version supporting Lua 5.1 and up, e.g. 3.9\n\nHow to get Lua and LuaRocks is in detail covered in [the first article of the Lua series](https://martin-fieber.de/blog/lua-project-setup-with-luarocks/).\n\n\n\n\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsosie-js%2Fpeagisub-vs","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsosie-js%2Fpeagisub-vs","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsosie-js%2Fpeagisub-vs/lists"}