一个功能完整的微信小程序,支持抖音、快手等平台的视频解析和下载。
本项目是一个基于微信小程序云开发的视频解析工具,用户可以通过输入视频链接来解析并下载视频文件。支持多个主流短视频平台,提供完整的用户体验。
- 视频解析:支持抖音、快手等平台视频链接解析
- 多清晰度下载:提供不同清晰度选项
- 历史记录:保存用户解析历史,支持筛选和管理
- 用户中心:个人信息管理和应用设置
- 智能识别:自动识别视频平台和提取视频信息
- 一键复制:快速复制视频链接或分享内容
- 进度显示:实时显示下载进度
- 离线缓存:支持本地存储和离线访问
- 云端存储:基于微信云开发的数据存储
- 用户认证:微信授权登录
- 数据统计:用户使用情况统计
- 设置同步:跨设备设置同步
- 框架:微信小程序原生开发
- 样式:WXSS + CSS变量系统
- 状态管理:本地存储 + 云端同步
- UI组件:自定义组件库
- 云开发:微信云开发平台
- 云函数:Node.js + wx-server-sdk
- 数据库:云数据库(MongoDB)
- 存储:云存储服务
wx-server-sdk:微信云开发SDKaxios:HTTP请求库(云函数中使用)
e:\wsoft\
├── pages/ # 页面文件
│ ├── index/ # 首页
│ ├── result/ # 解析结果页
│ ├── history/ # 历史记录页
│ └── profile/ # 个人中心页
├── cloudfunctions/ # 云函数
│ ├── parseVideo/ # 视频解析云函数
│ ├── getUserHistory/ # 获取用户历史
│ ├── deleteHistory/ # 删除历史记录
│ ├── userSettings/ # 用户设置管理
│ └── getStatistics/ # 统计数据获取
├── utils/ # 工具函数
│ ├── common.js # 通用工具函数
│ └── api.js # API接口管理
├── styles/ # 样式文件
│ ├── global.wxss # 全局样式
│ └── components.wxss # 组件样式
├── database/ # 数据库配置
│ └── collections.json # 数据库集合定义
├── test/ # 测试文件
│ └── test.js # 功能测试
├── app.js # 应用入口
├── app.json # 应用配置
├── app.wxss # 应用样式
├── project.config.json # 项目配置
└── README.md # 项目说明
- 安装微信开发者工具
- 注册微信小程序账号
- 开通云开发服务
-
克隆项目
git clone <项目地址> cd wsoft
-
配置小程序
- 在微信开发者工具中导入项目
- 修改
project.config.json中的appid - 配置云开发环境ID
-
部署云函数
# 在微信开发者工具中右键每个云函数文件夹 # 选择 "上传并部署:云端安装依赖"
-
初始化数据库
- 在云开发控制台创建数据库集合
- 参考
database/collections.json配置集合结构
-
启动开发服务器
- 在微信开发者工具中打开项目
- 点击 "编译" 按钮
-
功能测试
// 在控制台运行测试 const test = require('./test/test.js') test.runAllTests()
- 用户输入:用户在首页输入视频链接
- 链接验证:验证链接格式和平台支持
- 平台识别:自动识别视频来源平台
- 云函数调用:调用
parseVideo云函数 - 视频解析:提取视频信息和下载链接
- 结果展示:在结果页展示视频信息和下载选项
- 历史保存:将解析记录保存到用户历史
{
_id: ObjectId,
userOpenId: String, // 用户标识
originalUrl: String, // 原始链接
platform: String, // 平台类型
title: String, // 视频标题
author: String, // 作者
cover: String, // 封面图
duration: Number, // 时长
videoUrls: Array, // 视频链接数组
timestamp: Date // 创建时间
}{
_id: ObjectId,
userOpenId: String, // 用户标识
autoSave: Boolean, // 自动保存
downloadQuality: String, // 下载质量
darkMode: Boolean, // 深色模式
notifications: Boolean, // 通知设置
updatedAt: Date // 更新时间
}// 调用方式
videoApi.parse(url)
.then(result => {
// 处理解析结果
})
.catch(error => {
// 处理错误
})
// 返回数据格式
{
success: true,
data: {
title: "视频标题",
author: "作者名称",
cover: "封面链接",
duration: 30,
videoUrls: [
{
quality: "高清",
url: "下载链接",
size: 1024000
}
]
}
}// 获取历史记录
historyApi.getHistory({
page: 1,
limit: 10,
platform: 'douyin' // 可选
})
// 删除历史记录
historyApi.deleteHistory([recordId1, recordId2])-
安装依赖
# 进入每个云函数目录 cd cloudfunctions/parseVideo npm install
-
上传部署
- 在微信开发者工具中右键云函数
- 选择 "上传并部署:云端安装依赖"
-
创建集合
- 在云开发控制台创建以下集合:
parse_recordsuser_settingsapp_statistics
- 在云开发控制台创建以下集合:
-
设置索引
// parse_records 集合索引 db.collection('parse_records').createIndex({ userOpenId: 1, timestamp: -1 }) // user_settings 集合索引 db.collection('user_settings').createIndex({ userOpenId: 1 })
-
代码审核
- 确保代码符合微信小程序规范
- 完成功能测试和兼容性测试
-
提交审核
- 在微信开发者工具中点击 "上传"
- 在小程序管理后台提交审核
-
发布上线
- 审核通过后点击 "发布"
- 配置线上环境参数
- 命名规范:使用驼峰命名法
- 文件组织:按功能模块组织文件
- 注释规范:关键函数和复杂逻辑必须添加注释
- 错误处理:所有异步操作必须包含错误处理
- 单位使用:使用
rpx作为主要单位 - 颜色管理:使用 CSS 变量统一管理颜色
- 响应式设计:适配不同屏幕尺寸
- 深色模式:支持系统深色模式
- 图片优化:使用适当的图片格式和尺寸
- 请求优化:合并请求,减少网络调用
- 缓存策略:合理使用本地存储和缓存
- 代码分割:按需加载,减少包体积
// 运行完整测试套件
const test = require('./test/test.js')
test.runAllTests()
// 单独测试模块
test.testUtils() // 工具函数测试
test.testAPI() // API接口测试
test.testStorage() // 存储功能测试- 设备测试:在不同设备上测试功能
- 网络测试:测试不同网络环境下的表现
- 版本测试:确保在不同微信版本中正常运行
A: 检查以下几点:
- 云开发环境是否正确配置
- 云函数是否正确部署
- 网络连接是否正常
- 用户权限是否足够
A: 可能的原因:
- 视频链接格式不正确
- 平台不支持或接口变更
- 网络请求超时
- 视频已被删除或设为私密
A: 检查以下几点:
- 用户是否已登录
- 数据库权限配置是否正确
- 云函数是否正常运行
- ✨ 初始版本发布
- 🎯 支持抖音、快手视频解析
- 📱 完整的用户界面和交互
- ☁️ 基于云开发的后端服务
- 📊 用户数据统计和管理
欢迎提交 Issue 和 Pull Request 来改进项目。
- Bug 报告:详细描述问题和复现步骤
- 功能建议:说明功能需求和使用场景
- 代码贡献:遵循项目代码规范
本项目采用 MIT 许可证,详见 LICENSE 文件。
- 项目地址:[GitHub Repository]
- 问题反馈:[Issues]
- 技术交流:[Discussion]
注意:本项目仅供学习和研究使用,请遵守相关平台的服务条款和法律法规。