- 安装 Node.js Node.js官网下载并安装。
然后开始无脑下一步,安装完成后检查一下环境
- 安装 HBuilderX, 官网下载,他是免安装的,下载完成后解压到你喜欢的路径
3 安装微信小程序开发工具
然后打开HBuilderX 在工具中配置微信开发工具的路径,用于发布,跟小程序调试运行
导入代码 代码地址 download.csdn.net/download/he…
功能介绍 1: 支持 dy, 某书, 某博 某右 等视频解析
2: 支持页面分享
3: 每日随机小姐姐视频素材获取
4: 前端微信登录功能
运行步骤
1: 导入代码到HBuilderX
2: 需要修改你的微信appID
如何获取appid?通过微信公众平台获取,在电脑端打开微信公众平台,获取,详情可以百度图片教程
3: 运行到微信小程序模拟机, 记得在工具中配置微信开发工具的路径
- 每日素材视频需要登录才能看到视频,微信小程序个人发布,不允许有视频类,所以要隐藏
体验地址
关于微信小程序downloadFile合法域名的问题和解决方案 dy因为有二级动态域名的缘故,在解析视频时会重定向到它的动态二级域名,但是在微信小程序上面在下载的链接必须配置合法的域名, 所以会出现{errno:680002, errMsg: "downloadFile:fail url not in domain list"}目前个人主要两个解决方法,有其他好的方法 欢迎讨论以下
通过抓包批量获取他的动态域名,但是有限,且微信小程序downloadFile合法域名配置上限是200个,所以并不能保证每个视频都能正常解析,有后台的情况下,可以保存没有配置的域名进行统计,后面在更新, 微信小程序好像是不支持这个动态更新的
由前端发给后端中转下载在发给前端,优点时服务稳定,几乎能保证每个视频都能正常解析,缺点是需要服务后台,且在大量长时间视频解析时耗时比较久,也废流量,以下是一个中转下载的接口例子
import requests from flask import Flask, request, jsonify, Response
app = Flask(name)
@app.route('/video', methods=['GET', 'POST']) def proxy(): print("获取请求") # 记录请求信息 client_ip = request.remote_addr user_agent = request.headers.get('User-Agent', 'No User Agent') print(f'Request from IP: {client_ip}, User Agent: {user_agent}', )
# 检查URL参数
url = request.args.get('url')
if not url:
return jsonify({'error': 'URL parameter is required'}), 400
print(f'Processing URL: {url}')
# 发送HEAD请求获取头信息
head_response = requests.head(url, allow_redirects=True, timeout=10)
head_response.raise_for_status()
# 记录响应信息
print(f'Response HTTP Code: {head_response.status_code}')
print(f'Response Headers: {head_response.headers}', )
# 发送GET请求获取完整内容
get_response = requests.get(url, stream=True, timeout=30)
get_response.raise_for_status()
# 设置CORS头
response_headers = {
'Access-Control-Allow-Origin': '*',
'Access-Control-Allow-Methods': 'GET',
'Access-Control-Allow-Headers': 'Content-Type'
}
# 创建响应对象
response = Response(
get_response.iter_content(chunk_size=8192),
content_type=get_response.headers.get('Content-Type', 'application/octet-stream'),
headers=response_headers
)
print(f'Download completed successfully for URL: {url}, Total Size: {total_size} bytes')
return response