{"id":42450501,"url":"https://github.com/wujunwei928/parse-video-py","last_synced_at":"2026-04-18T20:00:46.750Z","repository":{"id":231669486,"uuid":"781236985","full_name":"wujunwei928/parse-video-py","owner":"wujunwei928","description":"Python短视频去水印爬虫：抖音,皮皮虾,火山,微视,最右,快手,全民小视频,皮皮搞笑,西瓜视频,虎牙,梨视频,acfun,好看视频...","archived":false,"fork":false,"pushed_at":"2026-04-18T11:11:56.000Z","size":296,"stargazers_count":577,"open_issues_count":18,"forks_count":159,"subscribers_count":5,"default_branch":"main","last_synced_at":"2026-04-18T13:13:22.700Z","etag":null,"topics":["python","spider","video"],"latest_commit_sha":null,"homepage":"","language":"HTML","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/wujunwei928.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2024-04-03T02:07:41.000Z","updated_at":"2026-04-18T12:16:27.000Z","dependencies_parsed_at":"2026-01-03T21:06:51.350Z","dependency_job_id":"9ba0b857-4caf-485a-b0e8-aa0bd871edd1","html_url":"https://github.com/wujunwei928/parse-video-py","commit_stats":null,"previous_names":["wujunwei928/parse-video-py"],"tags_count":3,"template":false,"template_full_name":null,"purl":"pkg:github/wujunwei928/parse-video-py","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wujunwei928%2Fparse-video-py","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wujunwei928%2Fparse-video-py/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wujunwei928%2Fparse-video-py/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wujunwei928%2Fparse-video-py/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/wujunwei928","download_url":"https://codeload.github.com/wujunwei928/parse-video-py/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wujunwei928%2Fparse-video-py/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31982755,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-18T17:30:12.329Z","status":"ssl_error","status_checked_at":"2026-04-18T17:29:59.069Z","response_time":103,"last_error":"SSL_read: 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":["python","spider","video"],"created_at":"2026-01-28T08:47:36.962Z","updated_at":"2026-04-18T20:00:46.736Z","avatar_url":"https://github.com/wujunwei928.png","language":"HTML","funding_links":[],"categories":[],"sub_categories":[],"readme":"   * [支持平台](#支持平台)\n   * [安装](#安装)\n   * [Docker](#docker)\n   * [依赖模块](#依赖模块)\n\nPython短视频去水印, 视频目前支持22个平台, 图集目前支持5个平台, 欢迎各位Star。\n\u003e 💡tips\n\u003e 1. 出现解析失败可在 issue 中提问，请提供可用于复现的平台信息、分享链接.\n\u003e 2. 使用时, 请尽量使用app分享链接, 电脑网页版未做充分测试.\n\n# 其他语言版本\n- [Golang版本](https://github.com/wujunwei928/parse-video)\n\n---\n\n\u003cdiv align=\"center\"\u003e\n\n##  🚀 GLM Coding 限时优惠！性能强劲 量大管饱\n\n### 🎁 智谱 GLM Coding 超值订阅，邀你一起\"薅羊毛\"！\n\n**本项目前端多套主体样式和后端逻辑均有用到GLM辅助开发, 绝对性能够用, 又量大管饱.**\n\n[立即开拼，享限时惊喜价, 首购低至4折！](https://www.bigmodel.cn/glm-coding?ic=KUS7WQB5UI)\n\n\u003cimg src=\"resources/BigmodelPoster.png\" alt=\"拼好模活动海报\" width=\"300\"\u003e\n\n---\n\n\u003c/div\u003e\n\n# MCP 支持\n本项目现已支持 [MCP (Model Context Protocol)](https://modelcontextprotocol.io/)，提供StreamableHttp方式接入， 接入URL： http://localhost:8000/mcp\n\n# 支持平台\n## 图集\n| 平台 | 状态 |\n|----|----|\n| 抖音 | ✔  |\n| 快手 | ✔  |\n| 小红书 | ✔  |\n| 皮皮虾 | ✔  |\n| 微博 | ✔  |\n\n## 图集 LivePhoto\n| 平台 | 状态 |\n|----|----|\n| 小红书 | ✔  |\n| 抖音 | ✔  |\n\n## 视频\n| 平台       | 状态 |\n|----------|----|\n| 小红书      | ✔  |\n| 皮皮虾      | ✔  |\n| 抖音短视频    | ✔  |\n| 火山短视频    | ✔  |\n| 皮皮搞笑     | ✔  |\n| 快手短视频    | ✔  |\n| 微视短视频    | ✔  |\n| 西瓜视频     | ✔  |\n| 最右       | ✔  |\n| 梨视频      | ✔  |\n| 度小视(原全民) | ✔  |\n| 逗拍       | ✔  |\n| 微博       | ✔  |\n| 绿洲       | ✔  |\n| 全民K歌     | ✔  |\n| 6间房      | ✔  |\n| 美拍       | ✔  |\n| 新片场      | ✔  |\n| 好看视频     | ✔  |\n| 虎牙       | ✔  |\n| AcFun    | ✔  |\n| 哔哩哔哩\t| ✔  |\n| Twitter/X\t| ✔  |\n\n# 运行\n\n## 本地运行\n\n### 使用 uv（推荐）\n```shell\n# 进入项目根目录\ncd parse-video-py\n\n# 创建虚拟环境并安装全部依赖\nuv venv \u0026\u0026 uv pip install -e \".[all]\"\n\n# 激活虚拟环境\nsource .venv/bin/activate\n```\n\n### CLI 命令行\n```shell\n# 安装\nuv pip install -e \".[all]\"\n\n# 解析视频\nparse-video-py parse \"https://v.douyin.com/xxx\"\nparse-video-py parse \"https://v.douyin.com/xxx\" --format json\n\n# 启动 Web 服务\nparse-video-py serve --port 8000\n\n# 查看版本\nparse-video-py version\n```\n\n### 如需开启basic auth认证，请自行设置环境变量，不设置不开启，默认不开启\n```shell\nexport PARSE_VIDEO_USERNAME=username\nexport PARSE_VIDEO_PASSWORD=password\n```\n\n### 运行app\n```shell\nuvicorn parse_video_py.web:app --reload\n```\n\n## Docker运行\n### 获取 docker image\n```bash\ndocker pull wujunwei928/parse-video-py\n```\n\n### 运行 docker 容器, 端口 8000\n```bash\ndocker run -d -p 8000:8000 wujunwei928/parse-video-py\n```\n\n### 运行docker容器，开启basic auth认证\n```bash\ndocker run -d -p 8000:8000 -e PARSE_VIDEO_USERNAME=username -e PARSE_VIDEO_PASSWORD=password wujunwei928/parse-video-py\n```\n\n# 查看前端页面\n访问: http://127.0.0.1:8000/\n\n请求接口, 查看json返回\n```bash\ncurl 'http://127.0.0.1:8000/video/share/url/parse?url=视频分享链接' | jq\n```\n返回格式\n```json\n{\n  \"author\": {\n    \"uid\": \"uid\",\n    \"name\": \"name\",\n    \"avatar\": \"https://xxx\"\n  },\n  \"title\": \"记录美好生活#峡谷天花板\",\n  \"video_url\": \"https://xxx\",\n  \"music_url\": \"https://yyy\",\n  \"cover_url\": \"https://zzz\"\n}\n```\n| 字段名 | 说明 |\n| ---- | ---- |\n| author.uid | 视频作者id |\n| author.name | 视频作者名称 |\n| author.avatar | 视频作者头像 |\n| title | 视频标题 |\n| video_url | 视频无水印链接 |\n| music_url | 视频音乐链接 |\n| cover_url | 视频封面 |\n| images | 图集图片列表 |\n| images.[index].url | 图集图片地址 |\n| images.[index].live_photo_url | 图集图片 livephoto 视频地址 |\n\u003e 字段除了视频地址, 其他字段可能为空\n\n# 自己写方法调用\n```python\nimport json\nimport asyncio\n\nfrom parse_video_py import parse_video_share_url, parse_video_id, VideoSource\n\n# 根据分享链接解析\nvideo_info = asyncio.run(parse_video_share_url(\"分享链接\"))\nprint(\n    \"解析分享链接：\\n\",\n    json.dumps(video_info, ensure_ascii=False, indent=4, default=lambda x: x.__dict__),\n    \"\\n\",\n)\n\n# 根据视频id解析\nvideo_info = asyncio.run(\n    parse_video_id(VideoSource.DouYin, \"视频ID\")\n)\nprint(\n    \"解析视频ID：\\n\",\n    json.dumps(video_info, ensure_ascii=False, indent=4, default=lambda x: x.__dict__),\n    \"\\n\",\n)\n```\n\n\n# 依赖模块\n| 模块        | 作用                                   |\n|-------------|--------------------------------------|\n| fastapi     | web框架                                |\n| fastapi-mcp | 支持MCP                                |\n| httpx       | HTTP 和 REST 客户端                      |\n| parsel      | 解析html页面                             |\n| pre-commit  | 对git代码提交前进行检查，结合flake8，isort，black使用 |\n| flake8      | 工程化：代码风格一致性                          |\n| isort       | 工程化：格式化导入package                     |\n| black       | 工程化：代码格式化                            |\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwujunwei928%2Fparse-video-py","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fwujunwei928%2Fparse-video-py","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwujunwei928%2Fparse-video-py/lists"}