微信小程序短视频去水印解析

article/2025/9/22 11:39:43

小程序体验

下载源码:源码下载

js

var services = require('../../lib/service')var ReceiverOptions = null;
Page({data: {loading: false,videoInfo: {}, //{videoId:0,videourl:'',title:''}//0:加载完成(还有数据)  1:加载中  2:加载完成(没有更多数据了)searchLoadingStatus: 2,//1:已授权  0:未授权typeCode: 0,//搜索位置名称searchKeyWord: '',systemInfo: {},//视频下载状态 0:未下载  1:正在下载videoDownLoadStatus: 0,videoDownProgress: 0,videoPlayCoverList: [],//是否显示下载视频按钮showDownLoadBtn: false,//显示分享按钮showShareVideoBtn: false,//是否显示在线客服showOnlineKf: false,//积分总数creditsAmountSum: 0,//视频下载UrldownLoadVideoUrl: '',//视频下载提示语downloadVideoWaitRemindText: '正在生成视频地址,请稍后...'},onLoad(options) {var that = this;wx.getSystemInfo({success: function(res) {that.setData({systemInfo: res //windowWidth,windowHeight});console.log(res);}});getApp().getWxLoginInfo(function() {that.loadSupportPlat(true);that.videoSystemSetting();});},onShow() {var that = this;var userLoginStatus = getApp().globalData.UserInfo.UserLoginStatus;if (userLoginStatus) {that.loadSupportPlat(false);}wx.getClipboardData({success(res) {console.log(res.data);var linkStr = res.data;if (linkStr.indexOf('http:') >= 0 || linkStr.indexOf('https:') >= 0) {//清空剪切板内容wx.setClipboardData({data: ' ',success(clearRes) {wx.hideToast();}})wx.showModal({title: '是否粘贴剪切板中的链接地址',content: linkStr,success(res) {if (res.confirm) {that.setData({searchKeyWord: linkStr});}}})}}})that.setData({searchLoadingStatus: 2});},loadSupportPlat: function(loading) {var that = this;services.service('minivideo/getplatlist', {"WxUserId": 0},function(res) {console.log(res);that.setData({videoPlayCoverList: res.data.Data});}, null, null, loading);},loadShareVideo: function() {let that = this;var videoId = that.data.videoInfo.videoId;//videoId = 10004;if (videoId > 0) {services.service('minivideo/getvideoinfo', {"WxUserId": 0,"VideoId": videoId},function(res) {console.log(res);if (res.data.Status) {var analysisStatus = res.data.Data.AnalysisStatus;var showDownLoadBtn = false;//下载成功,显示下载,分享按钮if (analysisStatus == 3) {showDownLoadBtn = true;}that.setData({downloadVideoWaitRemindText: '',showDownLoadBtn: showDownLoadBtn,showShareVideoBtn: true,videoInfo: {videoId: videoId,videourl: res.data.Data.VideoUrl},downLoadVideoUrl: res.data.Data.VideoUrl});}}, null, null, true);} else {}},//系统设置videoSystemSetting: function() {let that = this;services.service('minivideo/getconfig', {},function(res) {console.log(res);if (res.data.Status) {that.setData({showShareVideoBtn: res.data.Data.ShowShareVideo,showOnlineKf: res.data.Data.ShowOnlineKf});}}, null, null, false);},//保存视频到相册btnSaveVideo: function() {var that = this;wx.authorize({scope: "scope.writePhotosAlbum",success: function() {var downLoadStatus = that.data.videoDownLoadStatus;if (downLoadStatus == 0) {var videourl = that.data.downLoadVideoUrl;if (videourl == null || videourl == '') {that.showToast('请先提取视频');return;}that.setData({videoDownLoadStatus: 1,videoDownProgress: 0})const downloadTask = wx.downloadFile({url: videourl,success(res) {if (res.statusCode === 200) {wx.saveVideoToPhotosAlbum({filePath: res.tempFilePath,success(res) {//保存成功that.showSuccessToast('已保存到相册');},fail(res) {console.log(res);that.showToast('保存失败');}})}},fail(res) {that.showToast('下载视频失败');},complete(res) {that.setData({videoDownLoadStatus: 0})}})//监听下载进度downloadTask.onProgressUpdate(function(res) {that.setData({videoDownProgress: res.progress})})}},fail: function() {that.showToast('授权保存视频到相册失败,请删除该小程序重新授权');}});},//复制链接copyVideoLink: function() {var that = this;var videoUrl = that.data.videoInfo.videourl;wx.setClipboardData({data: videoUrl,success(res) {that.showToast('复制成功')}});},//搜索bindSearchTap: function(e) {console.log('开始提取视频')console.log(e);var that = this;var searchLoadingStatus = that.data.searchLoadingStatus;if (searchLoadingStatus != 1) {that.setData({//加载中searchLoadingStatus: 1});var _userInfo = e.detail.userInfo;if (_userInfo != null && _userInfo != undefined) {//先授权getApp().authorUserInfo(_userInfo, function(data) {that.getVideoPlayUrl();}, false);} else {that.showToast("请先允许微信授权");that.setData({//加载中searchLoadingStatus: 2});}}},//使用教程bindUseCourse: function(e) {wx.navigateTo({url: '../useCourse/useCourse'});},//跳转到位置收藏大师navigateToLocationMiniProgram: function(e) {var wxUserId = getApp().globalData.UserInfo.WxUserId;wx.navigateToMiniProgram({appId: 'wxb91f7b85c23f0624',path: 'pages/home/home?skip=' + wxUserId,//extraData: {//  flag: 'Skip_1'//},envVersion: 'release',success(res) {// 打开成功},fail(res) {that.showToast('调起小程序失败,请稍后重试');}})},//清空输入框clearInput: function() {var that = this;that.setData({searchKeyWord: ''});},//输入框输入监听searchInputMonitor: function(e) {var that = this;that.setData({searchKeyWord: e.detail.value});},//提取视频getVideoPlayUrl: function() {var that = this;that.startGetVideoPlayUrl();},startGetVideoPlayUrl: function() {var that = this;var wxUserId = getApp().globalData.UserInfo.WxUserId;var keyword = that.data.searchKeyWord;services.service('minivideo/addvideourl', {WxUserId: wxUserId,OriginalUrl: keyword,XcxTypeCode: 1},function(res) {if (res.data.Status) {var videoUrl = res.data.Data.VideoUrl;var videoRecordId = res.data.Data.VideoRecordId;var videoImgs = res.data.Data.Imgs;that.setData({videoInfo: {videoId: videoRecordId,videourl: videoUrl,title: '',imgs: videoImgs}});var needDownLoadToServer = res.data.Data.NeedDownLoadToServer;if (needDownLoadToServer) {if (videoUrl != null && videoUrl != '') {that.downLoadVideoToServer(wxUserId, videoUrl, videoRecordId);}} else {that.setData({downLoadVideoUrl: videoUrl,showDownLoadBtn: true});}} else {wx.showModal({content: res.data.Msg,showCancel: false})}}, null,function() {that.setData({//加载完成searchLoadingStatus: 2});})},//下载视频到服务器downLoadVideoToServer: function(wxUserId, videoUrl, videoRecordId) {var that = this;that.setData({showDownLoadBtn: false,downloadVideoWaitRemindText: '正在生成视频地址,请稍后...'});services.service('minivideo/downloadvideo', {"WxUserId": wxUserId,"VideoUrl": videoUrl,"VideoRecordId": videoRecordId},function(res) {if (res.data.Status) {var url = res.data.Data.Url;that.setData({downLoadVideoUrl: url,showDownLoadBtn: true});} else {that.showToast(res.data.Msg);that.setData({showDownLoadBtn: false,downloadVideoWaitRemindText: res.data.Msg});}}, null, null, false);},//如何获取更多次数getTimesMore: function() {wx.navigateTo({url: '../getTimesMore/getTimesMore'});},showToast(title) {wx.showToast({title: title,icon: 'none',duration: 2000})},onShareAppMessage: function(res) {let that = this;return {path: '/pages/home/home'}}
});

wxml


<view class="search" bindtap="suo"><!--<icon class="search-img" type="search" size="13" />--><input class="search-ipt" value='{{searchKeyWord}}' type="text" bindinput="searchInputMonitor" placeholder="链接地址" placeholder-class="placeholder-color" /><view class="weui-icon-clear" bindtap="clearInput"><icon type="clear" size="23"></icon></view><!-- <text class="search-btn" bindtap="bindSearchTap">提取</text>--><form bindsubmit="getFormId" report-submit="true"><button type="primary" class='search-analysis' bindgetuserinfo='bindSearchTap' open-type="getUserInfo">解析</button></form>
</view>
<view class='support-remind'><view class="clearfix"></view><view class="content-attr clearfix"></view><view class="flex-wrp"><block wx:for="{{videoPlayCoverList}}"><view style='width:48px;float:left;margin-left:20px'><view style='text-align:center'><image mode='aspectFit' style='width:35px;height:35px;' src='{{item.Icon}}'></image></view><view class='support-text-app'><text>{{item.Name}}</text></view></view></block></view><view class="content-attr clearfix"></view>
</view>
<view class="clearfix"></view>
<!--视频区域-->
<block wx:if='{{videoInfo.videourl!=null && videoInfo.videourl!=""}}'><view class="order-cell"><!--cell-status clearfix--><view class=""><text>{{videoInfo.title}}</text></view><video id="myVideo" autoplay="true" style='width:{{systemInfo.windowWidth-20}}px;height:{{VideoHeight}}px;margin-left:10px;margin-right:10px;' src="{{videoInfo.videourl}}"></video><view class="clearfix"></view><view wx:if="{{!showDownLoadBtn}}" class='videoUrlWaitRemind'>{{downloadVideoWaitRemindText}}</view><button type="primary" bindtap="btnSaveVideo" class='videoDownShareLeft' wx:if="{{showDownLoadBtn}}"><block wx:if="{{videoDownLoadStatus==0}}"><text>下载视频</text></block><block wx:else><text>正在下载({{videoDownProgress}}%)</text></block></button><button type="warn" bindtap="copyVideoLink" class='videoDownShareRight'><block><text>复制链接</text></block></button></view>
</block><view style='margin-top:20px;'><view class='useCourse' bindtap="bindUseCourse">教程</view><button class='contactService' open-type="contact" wx:if="{{showOnlineKf}}"><view>客服</view></button><button class='shareXcx' open-type="share" wx:if="{{showShareVideoBtn}}"><view>分享</view></button>
</view>
<view class="clearfix"></view>
<view class='clsGetTimesWay' bindtap="getTimesMore" style='width:{{systemInfo.windowWidth-20}}px;height:200rpx;margin-left:10px;margin-right:10px;'><view style='float:left;width:{{systemInfo.windowWidth-20-70}}px;'><view class='clsGetTimesWayText'>如何获取更多次数?</view><view class='clsGetTimesWayRemind'>转发邀请好友</view><view class='clsGetTimesWaySee'>查看>></view></view><view style='float:left'><image style='width:64px;height:64px;margin-top:10px;' src='/images/times2.png'></image></view>
</view>
<view class="clearfix"></view>

 


http://chatgpt.dhexx.cn/article/glk1d3EY.shtml

相关文章

PHP如何实现解析抖音短视频链接中的无水印视频

抖音短视频的链接一般是一个很短的url地址&#xff0c;实际访问之后会进行重定向&#xff0c;访问一个很长的地址 public function douyin(Request $request){//获取前端传的抖音短视频地址$url $request->param(url,https://v.douyin.com/eNpFNdB/);if(empty($url)){retur…

抖音seo短视频矩阵系统源码开发解析---多账号授权管理

本文开发语音使用PHP语言开发&#xff0c;梅雨plum框架自主研发&#xff0c;文末另附开发技巧 抖音SEO短视频矩阵系统源码开发解析是一种基于抖音平台的短视频排名优化技术&#xff0c;通过对抖音算法的分析和抖音用户行为的研究&#xff0c;提供一种基于“流量矩阵”的短视频管…

在线解析短视频去水印工具

网址&#xff1a;在线解析短视频去水印工具 点击“在线体验”

抖音去除水印还原真实视频解析

抖音去除水印还原真实视频解析&#xff0c;输入抖音视频链接即可解析出真实无水印视频地址。 使用方法&#xff1a;在群内输入抖音地址即可~ 单条解析&#xff1a; http://v.douyin.com/8sAU3n 多条地址&#xff1a;&#xff08;含水印&#xff09; http://v.douyin.com/8sA…

最新抖音视频无水印解析接口及原理

1.无水印解析原理 用户将抖音视频分享给另外一个人的时候&#xff0c;可以直接复制链接。用户将得到一个类似下面的短链接 https://v.douyin.com/Du2M7R如果你对这方面有兴趣&#xff0c;可以和我们一群程序员交流学习&#xff0c;共同进步 695623459用户将短链口令复制&…

快手抖音短视频如何解析去除视频水印

很多从事媒体做视频的朋友会在一些素材平台上收集素材&#xff0c;但是发现下载的图片/视频会有水印&#xff0c;非常烦人。今天&#xff0c;今天教大家如何一键去除视频中的水印&#xff01;来看看吧&#xff01; https://www.shuiyinyun.com/inpaint-video.htmlhttps://www.s…

免费抖音视频解析网站_抖音规则解析:抖音视频为什么能火?推荐规则是什么?【揭秘】...

视频出现之后&#xff0c;又相继出现抖音、西瓜、火山、美拍等短视平台&#xff0c;其中以抖音、快手为主&#xff0c;而各大互联网公司都开始纷纷涉猎短视频领域&#xff0c;那么究竟要怎么要才能玩转短视频平台呢 ! 今天小编就给大家分析一下抖音短视频的一些玩法规则&#x…

PHP抖音无水印解析视频代码+思路

抖音无水印视频解析接口 抖音无水印视频思路 抖音解析PHP代码 php解析抖音无水印视频 这几天疫情严重&#xff0c;放假在家无所事事&#xff0c;闲着无聊写点代码&#xff0c;今天来说说PHP无水印解析抖音视频 网上的代码银狐自己试了试都是没用的&#xff0c;文末附上本人的…

msm8953 + android7.1.2知识总结

说明&#xff1a;本人之前一直在应用层开发&#xff0c;然而由于公司发展需要&#xff0c;现在要安卓系统级开发&#xff0c;涉及到硬件画板、驱动开发、编译、镜像烧录等等&#xff0c;难度可想而知&#xff0c;只能恨自己知识面太窄。但是本着不放弃、不抛弃的精神&#xff0…

高通骁龙450智能模块msm8953 android 4G

1、产品概念 高通450核心板 是一款基于高通平台、工业级高性能、可运行安卓操作系统的 4G 智能模块&#xff0c;可通过焊盘内嵌于各类 M2M 产品应用中&#xff0c;非常适合开发POS 机、车载电脑、多媒体终端、智能家居、物联网终端等移动设备。 主要性能 表 1&#xff1a;主…

高通Android msm8953 驱动开发(二)--TP调试

本篇记录Andoird9 高通msm8953 汇顶gt9xx系列TP调试过程&#xff0c;主要涉及到以下几个知识点&#xff1a; ①.TP通讯的基本原理 ②.TP参数的配置&#xff1b; ③.不同TP的兼容&#xff1b; ④.TP与LCD原点不一致的解决-翻转TP 一.TP通讯的基本原理 主板与TP是通过I2C协议…

高通Android msm8953 驱动开发(一)--LCD调试

本篇记录Andoird9 高通msm8953 ili9881c LCD调试过程&#xff0c;主要涉及到以下几个知识点&#xff1a; (一).利用GCDB生成lk 头文件和 kernel dts&#xff0c;点亮屏幕&#xff1b; (二).LCD兼容; &#xff08;三).LCD方向调整; 一.GCDB生成lk 头文件和 kernel dts GCDB可以…

msm8953 LCD移植详解

一、简介 本文是基于高通msm8953的LCD模块移植说明。LCD移植主要是涉及到LK和kernel部分的修改。 二、实操准备 1、专业术语 HSYNC:行同步信号&#xff0c;表示扫描1行的开始。 VSYNC:帧同步信号,表示扫描1帧的开始&#xff0c;一帧也就是LCD显示的一个画面。 HFP:Horizon …

Qcom平台添加 Camera 驱动(msm8953)

前言 硬件平台&#xff1a;MSM8953/SDM450 软件平台&#xff1a;Android9.0 主摄IC&#xff1a; IMX258 (AF、Flash) 前摄IC&#xff1a; GC5025(AF) 景深&#xff1a; OV5670/GC5025(AF) Qocm平台Android5.1 和Android8.0 (N1 msm8909)流程基本一致&#xff0c;And…

高通平台msm8953 display子系统学习

硬件上&#xff0c;高通平台有一个mipi-dsi接口连接LCM&#xff0c;由MDP&#xff08;mobile display processor&#xff09;进行管理&#xff0c;就是一般说的LCD控制器 软件上&#xff0c;高通平台提供MDSS&#xff08;Multimedia Display Sub-system&#xff09;进行管理 …

[高通MSM8953_64][Android10]解决制作差分包不生成system_manifest.xml的问题

文章目录 开发平台基本信息问题描述解决方法 开发平台基本信息 芯片: MSM8953_64 版本: Android 10 kernel: msm-4.9 问题描述 设备在调试OTA升级功能的时候&#xff0c;制作OTA全量包测试升级功能&#xff0c;升级正常&#xff1b;然后&#xff0c;测试差分包升级失败了&am…

4G全网通模块 安卓 高通骁龙MSM8909核心板 开发板

核心板特性 A53架构 8核(8*2.2GHz(A53)) 产品尺寸小,便于客户集成,减少产品体积;支持4G LTE超高速上网,单板兼容移动/联通/电信2G/3G/4G;支持4+128存储器,SD3.0支持128G;尺寸小、集成度高、大板布板灵活;支持全网通=、wifi双频;支持快充,QC3.04线MIPI 分辨率1920*1280…

【EMMC】MSM8953里时钟是如何分频的

时钟源 MSM8953振荡频率为19.2 MHz的单晶振荡器&#xff08;XO&#xff09;。XO作为所有pll的源&#xff0c;也可以作为其他时钟的源。MSM8953没有单独的休眠晶体&#xff0c;使用586的除数从XO生成睡眠时钟32.768khz作为时钟信号源。 分析代码 在host中probe函数里有在初始…

高通625系列-MSM8953 (Cortex-A53架构)

核心板特性 A53架构 8核&#xff08;8*2.2GHz(A53)&#xff09; 产品尺寸小&#xff0c;便于客户集成&#xff0c;减少产品体积&#xff1b;支持4G LTE超高速上网&#xff0c;单板兼容移动/联通/电信2G/3G/4G&#xff1b;支持4128存储器,SD3.0支持128G&#xff1b;尺寸小、集成…

如何收集 小番茄的种子

1.把西红柿切成两半&#xff0c;注意要从果柄处对切。 2.打开西红柿&#xff0c;你应该可以看到西红柿基本上分成四个均匀的部分&#xff0c;每个部分之间有种子和凝胶。 3.找一个小勺子挖出种子&#xff0c;你也可以直接用挤出的方法把种子挤出来&#xff0c;放在小碗里&#…