[](https://github.com/iluvcapra/py-ptsl/actions/workflows/lint_and_pytest.yml)
[](https://codecov.io/gh/iluvcapra/py-ptsl)
[](https://py-ptsl.readthedocs.io/en/latest/?badge=latest)

 [](https://pypi.org/project/py-ptsl/) 
[](https://github.com/iluvcapra/py-ptsl/blob/master/docs/source/ptsl_versions.rst)
[](https://github.com/iluvcapra/py-ptsl/blob/master/docs/source/ptsl_versions.rst)
# py-ptsl
Native Python PTSL (Pro Tools Scripting Library) RPC interface
## Important Notice!
This software is developed by enthusiasts and is not a work of or supported by
Avid. Developers who wish to contribute to this project should obtain the PTSL
SDK [from Avid's Developer site](https://developer.avid.com) for the most
current documentation and protobuf source files.
## Example
See the [examples directory](examples) for scripts demonstrating how to use the
client.
- [session_info.py](examples/session_info.py) - This example
prints a list of gettable properties from the currently-open
session.
- [print_tracks.py](examples/print_tracks.py) - This example prints
a list of every track in the currently-open session, including state
information like selection, mute and solo state, track color and
track ID.
- [make_session.py](examples/make_session.py) - Creates a new
session interactively from the terminal.
- [pt_set.py](examples/pt_set.py) - Allows several session setup
options to be set from the terminal.
- [pt_pasteboard.py](examples/pt_pasteboard.py) - Demonstrates
triggering cut/copy/paste actions.
- [toolshell.py](examples/toolshell.py) - Implements a command line
interface for Pro Tools.
### Sending Commands To Pro Tools with the `Engine` class
The `Engine` class exposes `ptsl` commands with a method call interface.
```python
from ptsl import open_engine
with open_engine(company_name="MY_COMPANY", application_name="MY_TOOL") as engine:
session_name = engine.session_name()
```
Raw data
{
"_id": null,
"home_page": null,
"name": "py-ptsl",
"maintainer": null,
"docs_url": null,
"requires_python": "<4.0,>=3.9",
"maintainer_email": null,
"keywords": "pro tools, scripting, grpc, automation, avid",
"author": "Jamie Hardt",
"author_email": "jamiehardt@me.com",
"download_url": "https://files.pythonhosted.org/packages/f7/cc/ece7275d8e6c27f576fe1b39288a35aaa672f381a644ea92961a5edf65c8/py_ptsl-600.0.0.tar.gz",
"platform": null,
"description": "[](https://github.com/iluvcapra/py-ptsl/actions/workflows/lint_and_pytest.yml)\n[](https://codecov.io/gh/iluvcapra/py-ptsl)\n[](https://py-ptsl.readthedocs.io/en/latest/?badge=latest)\n\n\n [](https://pypi.org/project/py-ptsl/) \n\n[](https://github.com/iluvcapra/py-ptsl/blob/master/docs/source/ptsl_versions.rst)\n[](https://github.com/iluvcapra/py-ptsl/blob/master/docs/source/ptsl_versions.rst)\n\n# py-ptsl\n\nNative Python PTSL (Pro Tools Scripting Library) RPC interface\n\n## Important Notice! \n\nThis software is developed by enthusiasts and is not a work of or supported by \nAvid. Developers who wish to contribute to this project should obtain the PTSL \nSDK [from Avid's Developer site](https://developer.avid.com) for the most \ncurrent documentation and protobuf source files.\n\n## Example\n\nSee the [examples directory](examples) for scripts demonstrating how to use the\nclient.\n\n- [session_info.py](examples/session_info.py) - This example \n prints a list of gettable properties from the currently-open\n session.\n- [print_tracks.py](examples/print_tracks.py) - This example prints\n a list of every track in the currently-open session, including state\n information like selection, mute and solo state, track color and \n track ID.\n- [make_session.py](examples/make_session.py) - Creates a new\n session interactively from the terminal.\n- [pt_set.py](examples/pt_set.py) - Allows several session setup\n options to be set from the terminal.\n- [pt_pasteboard.py](examples/pt_pasteboard.py) - Demonstrates\n triggering cut/copy/paste actions.\n- [toolshell.py](examples/toolshell.py) - Implements a command line \n interface for Pro Tools.\n\n\n### Sending Commands To Pro Tools with the `Engine` class\n\nThe `Engine` class exposes `ptsl` commands with a method call interface.\n\n```python\nfrom ptsl import open_engine\n\nwith open_engine(company_name=\"MY_COMPANY\", application_name=\"MY_TOOL\") as engine:\n session_name = engine.session_name()\n```\n\n\n",
"bugtrack_url": null,
"license": "BSD-3-Clause",
"summary": "Native Python PTSL (Pro Tools Scripting Library) RPC interface",
"version": "600.0.0",
"project_urls": {
"Documentation": "https://py-ptsl.readthedocs.io",
"Homepage": "https://github.com/iluvcapra/py-ptsl",
"Repository": "https://github.com/iluvcapra/py-ptsl",
"Tracker": "https://github.com/iluvcapra/py-ptsl/issues"
},
"split_keywords": [
"pro tools",
" scripting",
" grpc",
" automation",
" avid"
],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "62c479ea8b6c8306e91f1f76ce7339144b0bb7de9309099b7c77d6721eacdf23",
"md5": "509ab866271ec616c17d6daac8548add",
"sha256": "1f754a2b60438f7439ac2eb458773c059faf9a233a1d7c93d7d3c2720781ff70"
},
"downloads": -1,
"filename": "py_ptsl-600.0.0-py3-none-any.whl",
"has_sig": false,
"md5_digest": "509ab866271ec616c17d6daac8548add",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": "<4.0,>=3.9",
"size": 99778,
"upload_time": "2025-09-08T19:46:45",
"upload_time_iso_8601": "2025-09-08T19:46:45.674615Z",
"url": "https://files.pythonhosted.org/packages/62/c4/79ea8b6c8306e91f1f76ce7339144b0bb7de9309099b7c77d6721eacdf23/py_ptsl-600.0.0-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "f7ccece7275d8e6c27f576fe1b39288a35aaa672f381a644ea92961a5edf65c8",
"md5": "597f2cf33240ad79d88a7e827f65eb82",
"sha256": "ede830f6d8733e48c5e9c55de4ee11afc66e480705a68f1b5612ecd5e6d09c41"
},
"downloads": -1,
"filename": "py_ptsl-600.0.0.tar.gz",
"has_sig": false,
"md5_digest": "597f2cf33240ad79d88a7e827f65eb82",
"packagetype": "sdist",
"python_version": "source",
"requires_python": "<4.0,>=3.9",
"size": 79923,
"upload_time": "2025-09-08T19:46:47",
"upload_time_iso_8601": "2025-09-08T19:46:47.389384Z",
"url": "https://files.pythonhosted.org/packages/f7/cc/ece7275d8e6c27f576fe1b39288a35aaa672f381a644ea92961a5edf65c8/py_ptsl-600.0.0.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-09-08 19:46:47",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "iluvcapra",
"github_project": "py-ptsl",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"lcname": "py-ptsl"
}