<div align="center" style="padding-top: 10px">
<img src="./docs/koe.svg" alt="koe" width="50px" height="50px">
<img src="./docs/logo.svg" alt="live2d-py" height="80px">
</div>
<p align="center" style="font-family: 'Roboto', sans-serif; font-size: 1em; color: #555;">
<img title="Windows Distro" src="https://github.com/Arkueid/live2d-py/actions/workflows/build-windows.yml/badge.svg">
<br>
<img title="Release Version" src="https://img.shields.io/github/v/release/Arkueid/live2d-py" alt="Docker Build Version" style="margin: 0 10px;">
<img title="Python Version" src="https://img.shields.io/badge/python-3.10+-blue" alt="Python Version" style="margin: 0 10px;">
<img title="CMake" src="https://img.shields.io/badge/CMake-3.13+-orange" alt="CMake" style="margin: 0 10px;">
<img title="C++" src="https://img.shields.io/badge/C%2B%2B-17-yellow" alt="C++17" style="margin: 0 10px;">
</p>
使用 Python 直接加载和操作 Live2D 模型,不通过 Web Engine 等间接手段进行渲染。
基于 Python C++ API 对 Live2D Native SDK (C++) 进行了封装。理论上,只要配置好 OpenGL 上下文,可在 Python 中将 live2d
绘制在任何基于 OpenGL 的窗口。
代码使用示例:[package](./package/)
详细使用文档:[Wiki](https://github.com/Arkueid/live2d-py/wiki)
修改和开发的一点提示:[CONTRIBUTING](./CONTRIBUTING.md)
## 兼容UI库
理论上兼容所有能使用 OpenGL 进行绘制的UI库: Pygame / PyQt5 / PySide2 / PySide6 / GLFW / pyopengltk/ FreeGlut / Qfluentwidgets ...
## 支持功能
* 加载模型:**Cubism 2.1** 和 **Cubism 3.0** 及以上版本
* 视线跟踪
* 点击交互
* 动作播放回调
* 口型同步
* 模型各部分参数控制
* 各部件透明度控制
* 精确到部件的点击检测
## 兼容性
### Python 版本
Python 版本支持:从 live2d-py 0.3.2 开始使用 Python C Limited API,理论上兼容 Python 3.2 以上的所有版本。
### Cubism Live2D 版本
| `live2d-py` | 支持的live2d模型 | 实现 | 支持的Python版本 | 支持平台 |
|-------------|--------------------|-----------------------|---------------------------------------|--------------------------|
| `live2d.v2` | Cubism 2.1 以及更早的版本 | 纯 Python 实现 | 支持 `32` / `64` 位,支持`Python 3.0` 及以上版本 | Winodws、Linux、MacOS(理论上) | |
| `live2d.v3` | Cubism 3.0 及以上版本 | Python C Extension 封装 | 支持 `32` / `64` 位,支持`Python 3.2` 及以上版本 | Windows、Linux |
注:
* `live2d.v2` 由 Cubism Web SDK 转写为纯 Python,尚未使用 numpy 等优化的库,性能有待提升。
* Cubism 2.X 导出的模型:文件名格式常为 `XXX.moc`,`XXX.model.json`,`XXX.mtn`
* Cubism 3.0 及以上导出的模型:文件名格式常为 `XXX.moc3`,`XXX.model3.json`, `XXX.motion3.json`
## 使用说明
1. 将仓库中的 package/live2d 直接作为 Python 模块集成到你的项目中即可。
2. 在 [Release](https://github.com/Arkueid/live2d-py/releases/latest) 中下载对应版本的 `whl` 文件并安装(推荐)
```shell
pip install live2d_py-0.X.X-cpXXX-cpXXX-win32.whl
```
3. 通过 [PyPI](https://pypi.org/project/live2d-py/) 安装
```shell
pip install live2d-py
```
4. 从源码构建,参考 [安装#源码构建](https://github.com/Arkueid/live2d-py/wiki/%E5%AE%89%E8%A3%85#%E6%BA%90%E7%A0%81%E6%9E%84%E5%BB%BA)
## 简易面部动捕示例
源码见 [main_facial_bind_mediapipe.py](./package/main_facial_bind.py)

## 贡献
特别感谢 [@96bearli],[@Ovizro], [@AnyaCoder], [@jahtim] 为本项目提供的帮助和支持。
[@96bearli]: https://github.com/96bearli
[@Ovizro]: https://github.com/Ovizro
[@AnyaCoder]: https://github.com/AnyaCoder
[@jahtim]: https://github.com/jahtim
Raw data
{
"_id": null,
"home_page": "https://github.com/Arkueid/live2d-py",
"name": "live2d-py",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.2",
"maintainer_email": null,
"keywords": "Live2D, Cubism Live2D, Cubism SDK, Cubism SDK for Python",
"author": "Arkueid",
"author_email": "thetardis@qq.com",
"download_url": null,
"platform": null,
"description": "<div align=\"center\" style=\"padding-top: 10px\">\r\n <img src=\"./docs/koe.svg\" alt=\"koe\" width=\"50px\" height=\"50px\">\r\n <img src=\"./docs/logo.svg\" alt=\"live2d-py\" height=\"80px\">\r\n</div>\r\n\r\n<p align=\"center\" style=\"font-family: 'Roboto', sans-serif; font-size: 1em; color: #555;\">\r\n <img title=\"Windows Distro\" src=\"https://github.com/Arkueid/live2d-py/actions/workflows/build-windows.yml/badge.svg\">\r\n <br>\r\n <img title=\"Release Version\" src=\"https://img.shields.io/github/v/release/Arkueid/live2d-py\" alt=\"Docker Build Version\" style=\"margin: 0 10px;\">\r\n <img title=\"Python Version\" src=\"https://img.shields.io/badge/python-3.10+-blue\" alt=\"Python Version\" style=\"margin: 0 10px;\">\r\n <img title=\"CMake\" src=\"https://img.shields.io/badge/CMake-3.13+-orange\" alt=\"CMake\" style=\"margin: 0 10px;\">\r\n <img title=\"C++\" src=\"https://img.shields.io/badge/C%2B%2B-17-yellow\" alt=\"C++17\" style=\"margin: 0 10px;\">\r\n</p>\r\n\r\n\u4f7f\u7528 Python \u76f4\u63a5\u52a0\u8f7d\u548c\u64cd\u4f5c Live2D \u6a21\u578b\uff0c\u4e0d\u901a\u8fc7 Web Engine \u7b49\u95f4\u63a5\u624b\u6bb5\u8fdb\u884c\u6e32\u67d3\u3002\r\n\r\n\u57fa\u4e8e Python C++ API \u5bf9 Live2D Native SDK (C++) \u8fdb\u884c\u4e86\u5c01\u88c5\u3002\u7406\u8bba\u4e0a\uff0c\u53ea\u8981\u914d\u7f6e\u597d OpenGL \u4e0a\u4e0b\u6587\uff0c\u53ef\u5728 Python \u4e2d\u5c06 live2d\r\n\u7ed8\u5236\u5728\u4efb\u4f55\u57fa\u4e8e OpenGL \u7684\u7a97\u53e3\u3002\r\n\r\n\u4ee3\u7801\u4f7f\u7528\u793a\u4f8b\uff1a[package](./package/)\r\n\r\n\u8be6\u7ec6\u4f7f\u7528\u6587\u6863\uff1a[Wiki](https://github.com/Arkueid/live2d-py/wiki)\r\n\r\n\u4fee\u6539\u548c\u5f00\u53d1\u7684\u4e00\u70b9\u63d0\u793a\uff1a[CONTRIBUTING](./CONTRIBUTING.md)\r\n\r\n## \u517c\u5bb9UI\u5e93\r\n\r\n\u7406\u8bba\u4e0a\u517c\u5bb9\u6240\u6709\u80fd\u4f7f\u7528 OpenGL \u8fdb\u884c\u7ed8\u5236\u7684UI\u5e93\uff1a Pygame / PyQt5 / PySide2 / PySide6 / GLFW / pyopengltk/ FreeGlut / Qfluentwidgets ...\r\n\r\n## \u652f\u6301\u529f\u80fd\r\n\r\n* \u52a0\u8f7d\u6a21\u578b\uff1a**Cubism 2.1** \u548c **Cubism 3.0** \u53ca\u4ee5\u4e0a\u7248\u672c\r\n* \u89c6\u7ebf\u8ddf\u8e2a\r\n* \u70b9\u51fb\u4ea4\u4e92\r\n* \u52a8\u4f5c\u64ad\u653e\u56de\u8c03\r\n* \u53e3\u578b\u540c\u6b65\r\n* \u6a21\u578b\u5404\u90e8\u5206\u53c2\u6570\u63a7\u5236\r\n* \u5404\u90e8\u4ef6\u900f\u660e\u5ea6\u63a7\u5236\r\n* \u7cbe\u786e\u5230\u90e8\u4ef6\u7684\u70b9\u51fb\u68c0\u6d4b\r\n\r\n## \u517c\u5bb9\u6027\r\n\r\n### Python \u7248\u672c\r\nPython \u7248\u672c\u652f\u6301\uff1a\u4ece live2d-py 0.3.2 \u5f00\u59cb\u4f7f\u7528 Python C Limited API\uff0c\u7406\u8bba\u4e0a\u517c\u5bb9 Python 3.2 \u4ee5\u4e0a\u7684\u6240\u6709\u7248\u672c\u3002\r\n\r\n### Cubism Live2D \u7248\u672c\r\n\r\n| `live2d-py` | \u652f\u6301\u7684live2d\u6a21\u578b | \u5b9e\u73b0 | \u652f\u6301\u7684Python\u7248\u672c | \u652f\u6301\u5e73\u53f0 |\r\n|-------------|--------------------|-----------------------|---------------------------------------|--------------------------|\r\n| `live2d.v2` | Cubism 2.1 \u4ee5\u53ca\u66f4\u65e9\u7684\u7248\u672c | \u7eaf Python \u5b9e\u73b0 | \u652f\u6301 `32` / `64` \u4f4d\uff0c\u652f\u6301`Python 3.0` \u53ca\u4ee5\u4e0a\u7248\u672c | Winodws\u3001Linux\u3001MacOS\uff08\u7406\u8bba\u4e0a\uff09 | |\r\n| `live2d.v3` | Cubism 3.0 \u53ca\u4ee5\u4e0a\u7248\u672c | Python C Extension \u5c01\u88c5 | \u652f\u6301 `32` / `64` \u4f4d\uff0c\u652f\u6301`Python 3.2` \u53ca\u4ee5\u4e0a\u7248\u672c | Windows\u3001Linux |\r\n\r\n\u6ce8\uff1a\r\n\r\n* `live2d.v2` \u7531 Cubism Web SDK \u8f6c\u5199\u4e3a\u7eaf Python\uff0c\u5c1a\u672a\u4f7f\u7528 numpy \u7b49\u4f18\u5316\u7684\u5e93\uff0c\u6027\u80fd\u6709\u5f85\u63d0\u5347\u3002\r\n* Cubism 2.X \u5bfc\u51fa\u7684\u6a21\u578b\uff1a\u6587\u4ef6\u540d\u683c\u5f0f\u5e38\u4e3a `XXX.moc`\uff0c`XXX.model.json`\uff0c`XXX.mtn`\r\n* Cubism 3.0 \u53ca\u4ee5\u4e0a\u5bfc\u51fa\u7684\u6a21\u578b\uff1a\u6587\u4ef6\u540d\u683c\u5f0f\u5e38\u4e3a `XXX.moc3`\uff0c`XXX.model3.json`, `XXX.motion3.json`\r\n\r\n## \u4f7f\u7528\u8bf4\u660e\r\n\r\n1. \u5c06\u4ed3\u5e93\u4e2d\u7684 package/live2d \u76f4\u63a5\u4f5c\u4e3a Python \u6a21\u5757\u96c6\u6210\u5230\u4f60\u7684\u9879\u76ee\u4e2d\u5373\u53ef\u3002\r\n\r\n\r\n2. \u5728 [Release](https://github.com/Arkueid/live2d-py/releases/latest) \u4e2d\u4e0b\u8f7d\u5bf9\u5e94\u7248\u672c\u7684 `whl` \u6587\u4ef6\u5e76\u5b89\u88c5\uff08\u63a8\u8350\uff09\r\n\r\n```shell\r\npip install live2d_py-0.X.X-cpXXX-cpXXX-win32.whl\r\n```\r\n\r\n3. \u901a\u8fc7 [PyPI](https://pypi.org/project/live2d-py/) \u5b89\u88c5\r\n\r\n```shell\r\npip install live2d-py\r\n```\r\n\r\n4. \u4ece\u6e90\u7801\u6784\u5efa\uff0c\u53c2\u8003 [\u5b89\u88c5#\u6e90\u7801\u6784\u5efa](https://github.com/Arkueid/live2d-py/wiki/%E5%AE%89%E8%A3%85#%E6%BA%90%E7%A0%81%E6%9E%84%E5%BB%BA)\r\n\r\n## \u7b80\u6613\u9762\u90e8\u52a8\u6355\u793a\u4f8b\r\n\r\n\u6e90\u7801\u89c1 [main_facial_bind_mediapipe.py](./package/main_facial_bind.py)\r\n\r\n\r\n\r\n## \u8d21\u732e\r\n\r\n\u7279\u522b\u611f\u8c22 [@96bearli]\uff0c[@Ovizro], [@AnyaCoder], [@jahtim] \u4e3a\u672c\u9879\u76ee\u63d0\u4f9b\u7684\u5e2e\u52a9\u548c\u652f\u6301\u3002\r\n\r\n[@96bearli]: https://github.com/96bearli\r\n\r\n[@Ovizro]: https://github.com/Ovizro\r\n\r\n[@AnyaCoder]: https://github.com/AnyaCoder\r\n\r\n[@jahtim]: https://github.com/jahtim\r\n\r\n",
"bugtrack_url": null,
"license": "MIT",
"summary": "Live2D Python SDK",
"version": "0.3.5",
"project_urls": {
"Homepage": "https://github.com/Arkueid/live2d-py"
},
"split_keywords": [
"live2d",
" cubism live2d",
" cubism sdk",
" cubism sdk for python"
],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "4dac0a51112997244f5c17223c1490d57094585a615e40629de84f437e065052",
"md5": "1acbc31cca607dad048bcc52d71e2b31",
"sha256": "6bfca1105890deb039277b79f0b7cb014f8b0590282e245541b96b4eed48fe15"
},
"downloads": -1,
"filename": "live2d_py-0.3.5-cp310-cp310-win32.whl",
"has_sig": false,
"md5_digest": "1acbc31cca607dad048bcc52d71e2b31",
"packagetype": "bdist_wheel",
"python_version": "cp310",
"requires_python": ">=3.2",
"size": 1580489,
"upload_time": "2025-01-22T10:13:21",
"upload_time_iso_8601": "2025-01-22T10:13:21.530806Z",
"url": "https://files.pythonhosted.org/packages/4d/ac/0a51112997244f5c17223c1490d57094585a615e40629de84f437e065052/live2d_py-0.3.5-cp310-cp310-win32.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "b6225c190a0cab5aa324896a48cc90a5c73c296ba0adddf65f0d6e95eafb376c",
"md5": "44e74263e4e1c2be8b1370dcc4788ad9",
"sha256": "d933e6cc03f6f3e6103371e06984492a2a40432cbc815b400755def64c20cd78"
},
"downloads": -1,
"filename": "live2d_py-0.3.5-cp310-cp310-win_amd64.whl",
"has_sig": false,
"md5_digest": "44e74263e4e1c2be8b1370dcc4788ad9",
"packagetype": "bdist_wheel",
"python_version": "cp310",
"requires_python": ">=3.2",
"size": 1580492,
"upload_time": "2025-01-22T10:15:19",
"upload_time_iso_8601": "2025-01-22T10:15:19.475523Z",
"url": "https://files.pythonhosted.org/packages/b6/22/5c190a0cab5aa324896a48cc90a5c73c296ba0adddf65f0d6e95eafb376c/live2d_py-0.3.5-cp310-cp310-win_amd64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "20221da38ef15af893a91f89b8868eb1133b6372641d7e529ddaa56dc69aff98",
"md5": "315972bf2177ea75611b580afb08e2d9",
"sha256": "42fd3ab64b60bef3181e35594c484ad0c6cb29fba90e3f430985e8ab65f9bc21"
},
"downloads": -1,
"filename": "live2d_py-0.3.5-cp311-cp311-win32.whl",
"has_sig": false,
"md5_digest": "315972bf2177ea75611b580afb08e2d9",
"packagetype": "bdist_wheel",
"python_version": "cp311",
"requires_python": ">=3.2",
"size": 1583565,
"upload_time": "2025-01-22T10:14:05",
"upload_time_iso_8601": "2025-01-22T10:14:05.419719Z",
"url": "https://files.pythonhosted.org/packages/20/22/1da38ef15af893a91f89b8868eb1133b6372641d7e529ddaa56dc69aff98/live2d_py-0.3.5-cp311-cp311-win32.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "63cc323419659e6b43e6b40c2fa58f5572001ae2d181ec4cd738695a1fd4e36d",
"md5": "4f2d4292699541c1c42c040c5daf2fff",
"sha256": "1596a0f8859eaae7c8c6e595a9a73064bccaf5fb75b4099b79220a5e16e92eac"
},
"downloads": -1,
"filename": "live2d_py-0.3.5-cp311-cp311-win_amd64.whl",
"has_sig": false,
"md5_digest": "4f2d4292699541c1c42c040c5daf2fff",
"packagetype": "bdist_wheel",
"python_version": "cp311",
"requires_python": ">=3.2",
"size": 1583568,
"upload_time": "2025-01-22T10:13:14",
"upload_time_iso_8601": "2025-01-22T10:13:14.950703Z",
"url": "https://files.pythonhosted.org/packages/63/cc/323419659e6b43e6b40c2fa58f5572001ae2d181ec4cd738695a1fd4e36d/live2d_py-0.3.5-cp311-cp311-win_amd64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "89f83f765631ca1f6900d8fa6f112ea33af7123ca5a2965371ea42785c0b3862",
"md5": "e12995d4abbc0eb8555934462483dbbd",
"sha256": "19bc89ea7127d98eea54197417ad9ac8ae2622f90623720374de30c154bfe442"
},
"downloads": -1,
"filename": "live2d_py-0.3.5-cp312-cp312-win32.whl",
"has_sig": false,
"md5_digest": "e12995d4abbc0eb8555934462483dbbd",
"packagetype": "bdist_wheel",
"python_version": "cp312",
"requires_python": ">=3.2",
"size": 1583589,
"upload_time": "2025-01-22T10:14:09",
"upload_time_iso_8601": "2025-01-22T10:14:09.904170Z",
"url": "https://files.pythonhosted.org/packages/89/f8/3f765631ca1f6900d8fa6f112ea33af7123ca5a2965371ea42785c0b3862/live2d_py-0.3.5-cp312-cp312-win32.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "a002cc197e7b21cb2c51cbc659c527e5aaa8cab3af157f0a9089ae6e3eeec24e",
"md5": "e955cdea53e09365387f02e5b0bfdcc3",
"sha256": "450e24dbd96df000ad82a040196f78a74f3b87d9606244ca6754dbd37bf4c2b8"
},
"downloads": -1,
"filename": "live2d_py-0.3.5-cp312-cp312-win_amd64.whl",
"has_sig": false,
"md5_digest": "e955cdea53e09365387f02e5b0bfdcc3",
"packagetype": "bdist_wheel",
"python_version": "cp312",
"requires_python": ">=3.2",
"size": 1583591,
"upload_time": "2025-01-22T10:14:17",
"upload_time_iso_8601": "2025-01-22T10:14:17.906516Z",
"url": "https://files.pythonhosted.org/packages/a0/02/cc197e7b21cb2c51cbc659c527e5aaa8cab3af157f0a9089ae6e3eeec24e/live2d_py-0.3.5-cp312-cp312-win_amd64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "688edb6013a02e7b1faa55e0dbc3e2b3e806d5af61a32f448b3dfff62dbddaf7",
"md5": "f8fcbfcd6dacf13afc44eda297b34ce3",
"sha256": "6dd922effbc0093a356c53aa741cc039f29d14835a287312c94fa47c32c923f2"
},
"downloads": -1,
"filename": "live2d_py-0.3.5-cp38-cp38-win32.whl",
"has_sig": false,
"md5_digest": "f8fcbfcd6dacf13afc44eda297b34ce3",
"packagetype": "bdist_wheel",
"python_version": "cp38",
"requires_python": ">=3.2",
"size": 1580470,
"upload_time": "2025-01-22T10:12:52",
"upload_time_iso_8601": "2025-01-22T10:12:52.101851Z",
"url": "https://files.pythonhosted.org/packages/68/8e/db6013a02e7b1faa55e0dbc3e2b3e806d5af61a32f448b3dfff62dbddaf7/live2d_py-0.3.5-cp38-cp38-win32.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "1d3b011c5b261fe39a4506da1491124b7b403a11af2c290f61004975134c2d37",
"md5": "22a1ceebb2f4e09811440f71560a1455",
"sha256": "79ed394eed13b621af0bd613153b4eb7c5820a74a6b38ff3c9017153275e12f0"
},
"downloads": -1,
"filename": "live2d_py-0.3.5-cp38-cp38-win_amd64.whl",
"has_sig": false,
"md5_digest": "22a1ceebb2f4e09811440f71560a1455",
"packagetype": "bdist_wheel",
"python_version": "cp38",
"requires_python": ">=3.2",
"size": 1580474,
"upload_time": "2025-01-22T10:14:31",
"upload_time_iso_8601": "2025-01-22T10:14:31.113902Z",
"url": "https://files.pythonhosted.org/packages/1d/3b/011c5b261fe39a4506da1491124b7b403a11af2c290f61004975134c2d37/live2d_py-0.3.5-cp38-cp38-win_amd64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "f448a9791ec2eefc7b8e290959d1708b327836d845e6c65e470abaed4d964e22",
"md5": "b87a7e058114c40dc0b8f158eaed1d5f",
"sha256": "510d55288ada07ee372e4eaa02e6829693a21163e8a0fb2e20f5191290316d7e"
},
"downloads": -1,
"filename": "live2d_py-0.3.5-cp39-cp39-win32.whl",
"has_sig": false,
"md5_digest": "b87a7e058114c40dc0b8f158eaed1d5f",
"packagetype": "bdist_wheel",
"python_version": "cp39",
"requires_python": ">=3.2",
"size": 1580471,
"upload_time": "2025-01-22T10:13:12",
"upload_time_iso_8601": "2025-01-22T10:13:12.787363Z",
"url": "https://files.pythonhosted.org/packages/f4/48/a9791ec2eefc7b8e290959d1708b327836d845e6c65e470abaed4d964e22/live2d_py-0.3.5-cp39-cp39-win32.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "df55fc3f6e55e3b402f656e778e9e0daf20136532630fba1bbe442279d7f24d2",
"md5": "78e6ab37804ccad92c58485259e4a184",
"sha256": "59996e0561d992a75ad769138970b39482ce24f942cae2dd0876bb7ea776e82c"
},
"downloads": -1,
"filename": "live2d_py-0.3.5-cp39-cp39-win_amd64.whl",
"has_sig": false,
"md5_digest": "78e6ab37804ccad92c58485259e4a184",
"packagetype": "bdist_wheel",
"python_version": "cp39",
"requires_python": ">=3.2",
"size": 1580475,
"upload_time": "2025-01-22T10:13:28",
"upload_time_iso_8601": "2025-01-22T10:13:28.119268Z",
"url": "https://files.pythonhosted.org/packages/df/55/fc3f6e55e3b402f656e778e9e0daf20136532630fba1bbe442279d7f24d2/live2d_py-0.3.5-cp39-cp39-win_amd64.whl",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-01-22 10:13:21",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "Arkueid",
"github_project": "live2d-py",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"lcname": "live2d-py"
}