Skip to content

xiaoyiluck666/video-parser-miniprogram

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

视频解析小程序

一个功能完整的微信小程序,支持抖音、快手等平台的视频解析和下载。

项目简介

本项目是一个基于微信小程序云开发的视频解析工具,用户可以通过输入视频链接来解析并下载视频文件。支持多个主流短视频平台,提供完整的用户体验。

主要功能

🎯 核心功能

  • 视频解析:支持抖音、快手等平台视频链接解析
  • 多清晰度下载:提供不同清晰度选项
  • 历史记录:保存用户解析历史,支持筛选和管理
  • 用户中心:个人信息管理和应用设置

📱 用户体验

  • 智能识别:自动识别视频平台和提取视频信息
  • 一键复制:快速复制视频链接或分享内容
  • 进度显示:实时显示下载进度
  • 离线缓存:支持本地存储和离线访问

⚙️ 系统功能

  • 云端存储:基于微信云开发的数据存储
  • 用户认证:微信授权登录
  • 数据统计:用户使用情况统计
  • 设置同步:跨设备设置同步

技术架构

前端技术

  • 框架:微信小程序原生开发
  • 样式:WXSS + CSS变量系统
  • 状态管理:本地存储 + 云端同步
  • UI组件:自定义组件库

后端技术

  • 云开发:微信云开发平台
  • 云函数:Node.js + wx-server-sdk
  • 数据库:云数据库(MongoDB)
  • 存储:云存储服务

核心依赖

  • wx-server-sdk:微信云开发SDK
  • axios: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              # 项目说明

快速开始

1. 环境准备

  • 安装微信开发者工具
  • 注册微信小程序账号
  • 开通云开发服务

2. 项目配置

  1. 克隆项目

    git clone <项目地址>
    cd wsoft
  2. 配置小程序

    • 在微信开发者工具中导入项目
    • 修改 project.config.json 中的 appid
    • 配置云开发环境ID
  3. 部署云函数

    # 在微信开发者工具中右键每个云函数文件夹
    # 选择 "上传并部署:云端安装依赖"
  4. 初始化数据库

    • 在云开发控制台创建数据库集合
    • 参考 database/collections.json 配置集合结构

3. 本地开发

  1. 启动开发服务器

    • 在微信开发者工具中打开项目
    • 点击 "编译" 按钮
  2. 功能测试

    // 在控制台运行测试
    const test = require('./test/test.js')
    test.runAllTests()

功能详解

视频解析流程

  1. 用户输入:用户在首页输入视频链接
  2. 链接验证:验证链接格式和平台支持
  3. 平台识别:自动识别视频来源平台
  4. 云函数调用:调用 parseVideo 云函数
  5. 视频解析:提取视频信息和下载链接
  6. 结果展示:在结果页展示视频信息和下载选项
  7. 历史保存:将解析记录保存到用户历史

数据库设计

parse_records 集合

{
  _id: ObjectId,
  userOpenId: String,      // 用户标识
  originalUrl: String,     // 原始链接
  platform: String,        // 平台类型
  title: String,           // 视频标题
  author: String,          // 作者
  cover: String,           // 封面图
  duration: Number,        // 时长
  videoUrls: Array,        // 视频链接数组
  timestamp: Date          // 创建时间
}

user_settings 集合

{
  _id: ObjectId,
  userOpenId: String,      // 用户标识
  autoSave: Boolean,       // 自动保存
  downloadQuality: String, // 下载质量
  darkMode: Boolean,       // 深色模式
  notifications: Boolean,  // 通知设置
  updatedAt: Date         // 更新时间
}

API接口说明

视频解析 API

// 调用方式
videoApi.parse(url)
  .then(result => {
    // 处理解析结果
  })
  .catch(error => {
    // 处理错误
  })

// 返回数据格式
{
  success: true,
  data: {
    title: "视频标题",
    author: "作者名称",
    cover: "封面链接",
    duration: 30,
    videoUrls: [
      {
        quality: "高清",
        url: "下载链接",
        size: 1024000
      }
    ]
  }
}

历史记录 API

// 获取历史记录
historyApi.getHistory({
  page: 1,
  limit: 10,
  platform: 'douyin' // 可选
})

// 删除历史记录
historyApi.deleteHistory([recordId1, recordId2])

部署指南

云函数部署

  1. 安装依赖

    # 进入每个云函数目录
    cd cloudfunctions/parseVideo
    npm install
  2. 上传部署

    • 在微信开发者工具中右键云函数
    • 选择 "上传并部署:云端安装依赖"

数据库配置

  1. 创建集合

    • 在云开发控制台创建以下集合:
      • parse_records
      • user_settings
      • app_statistics
  2. 设置索引

    // parse_records 集合索引
    db.collection('parse_records').createIndex({
      userOpenId: 1,
      timestamp: -1
    })
    
    // user_settings 集合索引
    db.collection('user_settings').createIndex({
      userOpenId: 1
    })

小程序发布

  1. 代码审核

    • 确保代码符合微信小程序规范
    • 完成功能测试和兼容性测试
  2. 提交审核

    • 在微信开发者工具中点击 "上传"
    • 在小程序管理后台提交审核
  3. 发布上线

    • 审核通过后点击 "发布"
    • 配置线上环境参数

开发规范

代码规范

  • 命名规范:使用驼峰命名法
  • 文件组织:按功能模块组织文件
  • 注释规范:关键函数和复杂逻辑必须添加注释
  • 错误处理:所有异步操作必须包含错误处理

样式规范

  • 单位使用:使用 rpx 作为主要单位
  • 颜色管理:使用 CSS 变量统一管理颜色
  • 响应式设计:适配不同屏幕尺寸
  • 深色模式:支持系统深色模式

性能优化

  • 图片优化:使用适当的图片格式和尺寸
  • 请求优化:合并请求,减少网络调用
  • 缓存策略:合理使用本地存储和缓存
  • 代码分割:按需加载,减少包体积

测试指南

功能测试

// 运行完整测试套件
const test = require('./test/test.js')
test.runAllTests()

// 单独测试模块
test.testUtils()      // 工具函数测试
test.testAPI()        // API接口测试
test.testStorage()    // 存储功能测试

兼容性测试

  • 设备测试:在不同设备上测试功能
  • 网络测试:测试不同网络环境下的表现
  • 版本测试:确保在不同微信版本中正常运行

常见问题

Q: 云函数调用失败

A: 检查以下几点:

  • 云开发环境是否正确配置
  • 云函数是否正确部署
  • 网络连接是否正常
  • 用户权限是否足够

Q: 视频解析失败

A: 可能的原因:

  • 视频链接格式不正确
  • 平台不支持或接口变更
  • 网络请求超时
  • 视频已被删除或设为私密

Q: 历史记录不显示

A: 检查以下几点:

  • 用户是否已登录
  • 数据库权限配置是否正确
  • 云函数是否正常运行

更新日志

v1.0.0 (2024-01-XX)

  • ✨ 初始版本发布
  • 🎯 支持抖音、快手视频解析
  • 📱 完整的用户界面和交互
  • ☁️ 基于云开发的后端服务
  • 📊 用户数据统计和管理

贡献指南

欢迎提交 Issue 和 Pull Request 来改进项目。

提交规范

  • Bug 报告:详细描述问题和复现步骤
  • 功能建议:说明功能需求和使用场景
  • 代码贡献:遵循项目代码规范

许可证

本项目采用 MIT 许可证,详见 LICENSE 文件。

联系方式

  • 项目地址:[GitHub Repository]
  • 问题反馈:[Issues]
  • 技术交流:[Discussion]

注意:本项目仅供学习和研究使用,请遵守相关平台的服务条款和法律法规。

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published