{"id":24562685,"url":"https://github.com/viper373/xovideos","last_synced_at":"2025-06-16T06:07:22.304Z","repository":{"id":273001903,"uuid":"918427149","full_name":"Viper373/XOVideos","owner":"Viper373","description":"一个为用户打造的个性化视频下载工具","archived":false,"fork":false,"pushed_at":"2025-05-28T03:18:14.000Z","size":510,"stargazers_count":2,"open_issues_count":1,"forks_count":2,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-05-28T04:42:37.034Z","etag":null,"topics":["boto3","crawler","downloader","githubactions","m3u8","mongodb","mp4","pornhub","python","s3-storage"],"latest_commit_sha":null,"homepage":"","language":"Python","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/Viper373.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,"zenodo":null}},"created_at":"2025-01-17T23:02:37.000Z","updated_at":"2025-05-28T03:18:17.000Z","dependencies_parsed_at":null,"dependency_job_id":"5ee16d12-93f5-4aca-86f0-d24d07316221","html_url":"https://github.com/Viper373/XOVideos","commit_stats":null,"previous_names":["viper373/xovideos"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/Viper373/XOVideos","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Viper373%2FXOVideos","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Viper373%2FXOVideos/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Viper373%2FXOVideos/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Viper373%2FXOVideos/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Viper373","download_url":"https://codeload.github.com/Viper373/XOVideos/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Viper373%2FXOVideos/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":260109576,"owners_count":22960034,"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":["boto3","crawler","downloader","githubactions","m3u8","mongodb","mp4","pornhub","python","s3-storage"],"created_at":"2025-01-23T09:17:02.519Z","updated_at":"2025-06-16T06:07:22.295Z","avatar_url":"https://github.com/Viper373.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"![XOVideos](https://socialify.git.ci/Viper373/XOVideos/image?description=1\u0026font=Inter\u0026forks=1\u0026issues=1\u0026logo=https%3A%2F%2Fimg.viper3.top%2FXOVideos%2Flogo.png\u0026name=1\u0026owner=1\u0026pattern=Circuit+Board\u0026pulls=1\u0026stargazers=1\u0026theme=Light)\n# XOVideos 📥\n\nXOVideos 是一个为用户打造的个性化视频下载工具，专注于提供“关注、订阅、喜爱”等功能，帮助用户轻松下载自己喜欢的内容。 目前，项目仅支持 **Pornhub**站，后续会逐步兼容其他平台，如 **Telegram** 等。\n\n## 功能 ✨\n\n- **订阅视频作者**：自动获取并更新你订阅的作者视频信息。\n- **喜爱视频下载**：下载你喜爱的影片，支持自定义下载路径。\n- **自动更新**：监控作者视频更新，自动下载最新内容。\n- **Github Actions 支持**：支持 Github Actions 自动化部署，欢迎 Fork 本项目。\n- **多平台支持（未来计划）**：目前支持 **Pornhub**，未来会逐步添加对 **Telegram** 等平台的支持。\n\n## 特性 🛠️\n\n- 使用 **Python 3.10.11** 版本。\n- 利用 **MongoDB** 存储视频信息和下载状态。\n- 自动下载支持的视频，使用 `streamlink` 工具。\n- 配置 **Cookies** 和 **请求头**。\n- 自动记录日志，帮助调试和监控任务进度。\n\n## 项目结构 📂\n\n```plaintext\nXOVideos/\n│\n├── config/                  # 配置文件目录\n│   ├── download.cfg         # 下载工具配置\n│   ├── pornhub.cfg          # Pornhub 站点配置\n│   └── telegram.cfg         # 未来的 Telegram 配置\n│\n├── logs/                    # 日志文件目录\n│\n├── run_task/                # 主任务脚本\n│   └── run.py               # 运行脚本\n│\n├── tool_utils/              # 工具库\n│   ├── api_utils.py         # API 请求工具\n│   ├── file_utils.py        # 文件工具\n│   ├── log_utils.py         # 日志工具\n│   ├── mongo_utils.py       # MongoDB 操作工具\n│   ├── proxy_utils.py       # 代理工具\n│   ├── redis_utils.py       # Redis 工具（暂未使用）\n│   └── string_utils.py      # 字符串处理工具\n│\n├── videos/                  # 下载的视频文件夹\n│   └── pornhub/             # Pornhub 视频文件夹\n│\n├── website/                 # 站点抓取文件夹\n│   └── pornhub.py           # Pornhub 抓取脚本\n│\n├── main.py                  # 主程序\n└── test.py                  # 测试脚本\n```\n\n## Github Actions 部署 🚀\n- **Fork** 本项目\n- 添加环境变量（**GitHub Secrets**）\n\n| 变量名           | 值类型  | 说明              |\n|---------------|------|-----------------|\n| Cookies       | Text | pornhub的Cookies |\n| MONGO_URI     | Text | MongoDB的连接URI   |\n| S3_ENDPOINT   | Text | S3的Endpoint     |\n| S3_REGION     | Text | S3的Region       |\n| S3_ACCESS_KEY | Text | S3的Access Key   |\n| S3_SECRET_KEY | Text | S3的Secret Key   |\n| S3_BUCKET     | Text | S3的Bucket       |\n- 在仓库页面，点击 **Settings（设置）**按钮。 \n- 在左侧菜单中，找到 **Secrets and variables**，然后选择 **Actions**。 \n- 点击 **New repository secret** 按钮，添加新的密钥： \n\n- 点击 **Add secret** 完成添加。\n\n## 安装与使用 🚀\n\n### 环境要求\n\n- `Python 3.10.11`\n- `MongoDB`丨MongoDB的免费云服务：[MongoDB Atlas](https://www.mongodb.com/cloud/atlas)\n  - **注意**：确保MongoDB服务IP地址在白名单中，或者关闭IP白名单功能（添加0.0.0.0/0到白名单）。\n- `streamlink`\n\n### 安装依赖\n\n1. 克隆本项目：\n\n    ```bash\n    git clone https://github.com/Viper373/XOVideos.git\n    cd XOVideos\n    ```\n\n2. 安装 Python 依赖：\n\n    ```bash\n    pip install -r requirements.txt\n    ```\n\n3. 安装并配置 `streamlink`：\n\n    请参考 [streamlink 官方文档](https://streamlink.github.io/) 安装并配置 `streamlink`。\n\n### 配置\n\n1. 配置 `config/pornhub.cfg` 和 `config/download.cfg`，具体可以参考注释。\n2. 配置你的 **Cookies**（从浏览器中提取）到 `pornhub.cfg` 文件中。\n\n### 运行项目\n\n执行以下命令来启动项目：\n\n```bash\npython main.py\n```\n\n## 许可证 📄\n\n本项目采用 [MIT 许可证](LINCENSE) 。","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fviper373%2Fxovideos","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fviper373%2Fxovideos","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fviper373%2Fxovideos/lists"}