效果图:

前言:
观看一些视频时,看见喜欢的想保存下来,但是又有一些烦人的水印,有一些还干脆不给保存,于是就有了本文章


接口:

https://www.iesdouyin.com/web/api/v2/aweme/iteminfo/?item_ids= 重定向到视频id

解析

分析链接:

3.30 ZZz:/ 艾特世界上最可爱的女孩子来看这束浪漫的玫瑰云。%治愈系风景 https://v.douyin.com/RvBhSpf/ 複制此链接,答開Dou音搜索,直接觀kan视pin!

提取其中的超链接

https://v.douyin.com/RvBhSpf/

很明显这是一个短链接,必会重定向

然后到浏览器访问分析

浏览器重定向:

什么是重定向:
就是就是一个链接的跳转,

例:访问a a带你跳到了b
就是一个简单的跳转链接

到浏览器访问后发现重定向到了一个长链接 然后又重定向到了一个 短链接 也就是 他的官网
显然这不是视频的地址

打开浏览器的开发者模式(F12) 然后重新打开

请求 URL: https://v.douyin.com/RvBhSpf/
请求方法: GET
状态代码: 302
远程地址:
183.61.241.231:443
引用站点策略: no-referrer-when-downgrade

可以看见状态码是 302 也就是链接被重定向过

重定向后链接:

这个才是视频的地址

https://www.iesdouyin.com/share/video/7037464280307879201/?region=CN&mid=6686486920349993735&u_code=0&did=MS4wLjABAAAA7VHXUN_GLEcQq9rPHBSE4KTW5OIytGIskoGOixzHi8C3gIXiWDdfthqbJKVfWB7v&iid=MS4wLjABAAAAuET8uthSOTT9S-qNNE1ymRKeemQk5yU9eINu1I9b-Uw&with_sec_did=1&titleType=title&timestamp=1639190176&utm_campaign=client_share&app=aweme&utm_medium=ios&tt_from=copy&utm_source=copy

访问还是会跳到 他的官网

浏览器切换为 手机模式

然后重新访问
发现链接不在跳转

获取无水印地址:

这里发现了一个 可以直接保存的 无水印链接

经过几个视频的分析 发现是不规则链接 …分析不了 可能是我技术原因(新手)…

于是加放弃了这个方法

这里发现了一个接口 访问后 里就有一个无水印的链接

直接访问链接

https://www.iesdouyin.com/web/api/v2/aweme/iteminfo/?item_ids=7037464280307879201


可以确定 里面包含了 视频作者的信息 和 使用的背景音乐 头像等…

但是数据 太乱了 使用JS解析
在线解析JS


一目了然
分析的数据:

作品信息:
发现 “item_list”: 里就是他的作品的信息

视频ID:

“aweme_id”:“7037464280307879201”,

视频文案:

“desc”:"艾特世界上最可爱的女孩子来看这束浪漫的玫瑰云。#治愈系风景 ",

还有其他信息等自行测试 …

无水印视频点地址:
发现这里是他的 背景音乐 打开就可以保存

这就是的无水印链接

这是视频封面链接


编写代码

重定向后地址:

 HttpWebRequest beg = (HttpWebRequest)WebRequest.Create(richTextBox1.Text);beg.Method = "GET";beg.AllowAutoRedirect = false;             WebResponse response = beg.GetResponse();string url = response.Headers["Location"];

重定向提取视频ID:
这就是视频的id 这个链接 就是短链接重定向后的

  int n = url.IndexOf("video/");url = url.Substring(n + 6, 19);

使用接口得到地址:
接口:

https://www.iesdouyin.com/web/api/v2/aweme/iteminfo/?item_ids= 重定向到视频id

  HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create("https://www.iesdouyin.com/web/api/v2/aweme/iteminfo/?item_ids=" + url);request.Method = "GET";                       request.Timeout = 10000;request.AllowAutoRedirect = false;WebResponse begurl = (WebResponse)request.GetResponse();StreamReader reader = new StreamReader(begurl.GetResponseStream(), Encoding.UTF8);ss = reader.ReadToEnd();

分割视频地址:

ss = ss.Substring(ss.IndexOf("play_addr"), ss.Length - ss.IndexOf("play_addr"));ss = ss.Substring(0, ss.IndexOf("]}"));ss = ss.Substring(ss.IndexOf("url_list"), ss.Length - ss.IndexOf("url_list"));ss = ss.Substring(ss.IndexOf("["), ss.Length - ss.IndexOf("["));ss = ss.Substring(2, ss.Length - 3);ss = ss.Replace("playwm", "play");

预览视频:

 DialogResult dr = MessageBox.Show("是否预览视频", "提示", MessageBoxButtons.OKCancel);if (dr == DialogResult.OK){try{Process.Start(ss);}catch {richTextBox1.Text = ss;MessageBox.Show("调用浏览器失败,请手动查看");}

保存视频:

try{SaveFileDialog sfd = new SaveFileDialog();sfd.Title = "请选择要保存的路径";sfd.InitialDirectory = @"C:\Users\SpringRain\Desktop";sfd.Filter = "视频文件|*.mp4|视频文件|*.avi|所有文件|*.*";sfd.ShowDialog();//获得保存文件的路径string path = sfd.FileName;HttpWebRequest beg = (HttpWebRequest)WebRequest.Create(ss);HttpWebResponse fh = (HttpWebResponse)beg.GetResponse();FileStream file = new FileStream(sfd.FileName, FileMode.Create);fh.GetResponseStream().CopyTo(file);}catch { }

完整代码:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Diagnostics;
using System.Drawing;
using System.IO;
using System.Linq;
using System.Net;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;namespace 抖音下载
{public partial class Form1 : Form{public Form1(){InitializeComponent();}private void richTextBox1_LinkClicked(object sender, LinkClickedEventArgs e){richTextBox1.Text = e.LinkText;}string ss;private void button1_Click(object sender, EventArgs e){try{HttpWebRequest beg = (HttpWebRequest)WebRequest.Create(richTextBox1.Text);beg.Method = "GET";beg.AllowAutoRedirect = false;beg.Headers.Add("Cookie:");beg.UserAgent = "ua";WebResponse response = beg.GetResponse();string url = response.Headers["Location"];int n = url.IndexOf("video/");url = url.Substring(n + 6, 19);HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create("https://www.iesdouyin.com/web/api/v2/aweme/iteminfo/?item_ids=" + url);request.Method = "GET";            request.Accept = "*/*";request.Timeout = 10000;request.AllowAutoRedirect = false;request.UserAgent = "ua";WebResponse begurl = (WebResponse)request.GetResponse();StreamReader reader = new StreamReader(begurl.GetResponseStream(), Encoding.UTF8);ss = reader.ReadToEnd();ss = ss.Substring(ss.IndexOf("play_addr"), ss.Length - ss.IndexOf("play_addr"));ss = ss.Substring(0, ss.IndexOf("]}"));ss = ss.Substring(ss.IndexOf("url_list"), ss.Length - ss.IndexOf("url_list"));ss = ss.Substring(ss.IndexOf("["), ss.Length - ss.IndexOf("["));ss = ss.Substring(2, ss.Length - 3);ss = ss.Replace("playwm", "play");button2.Visible = true;DialogResult dr = MessageBox.Show("是否预览视频", "提示", MessageBoxButtons.OKCancel);if (dr == DialogResult.OK){try{Process.Start(ss);}catch {richTextBox1.Text = ss;MessageBox.Show("调用浏览器失败,请手动查看");}}}catch{MessageBox.Show("检测网络,或链接是否正确,不包含中文");}}private void Form1_Load(object sender, EventArgs e){}private void button2_Click(object sender, EventArgs e){try{SaveFileDialog sfd = new SaveFileDialog();sfd.Title = "请选择要保存的路径";sfd.InitialDirectory = @"C:\Users\SpringRain\Desktop";sfd.Filter = "视频文件|*.mp4|视频文件|*.avi|所有文件|*.*";sfd.ShowDialog();//获得保存文件的路径string path = sfd.FileName;HttpWebRequest beg = (HttpWebRequest)WebRequest.Create(ss);HttpWebResponse fh = (HttpWebResponse)beg.GetResponse();FileStream file = new FileStream(sfd.FileName, FileMode.Create);fh.GetResponseStream().CopyTo(file);}catch { }}}
}

纯手打,点个赞呗~

C# 短视频 无水印解析 原视频下载(超详细)相关推荐

  1. python视频解析库_python某音短视频无水印解析

    [Python] 纯文本查看 复制代码import requests import re import tkinter as tk #用户名: (.*?) #简介: (.*?) #封面:cover: ...

  2. 2022小程序,短视频无水印解析API接口分享-最新可用

    支持平台:各大热门短视频平台 请求方式 POST 请求地址 https://api.itapi.cn/api/video/all 请求参数 参数名 参数说明 key 用户请求密钥,可在 密钥管理页面  ...

  3. xpanx原理解析 | 只要 3 秒!抖音视频无水印下载

    哈啰,这里是「xpanx」,又来给大家分享「奇技淫巧」啦! 获取更多的黑科技知识,可以点击上方的专辑目录「xpanx」查看. 抖音无水印下载方法 今天给大家分享一个不需要借助任何工具或者网站,即可下载 ...

  4. 安卓网apk安装器_短视频无水印下载,apk提取,带壳截图 iOS Android极客必备的三款软件,你全都用上了吗?...

    短视频无水印下载,apk提取,带壳截图 iOS Android 极客必备的三款软件,你全都用上了吗? 7SIZE丨插图内容来自于网络侵权删 给大家介绍 Android,iOS 上三款在生活中必备的三款 ...

  5. 某音短视频无水印下载APP的Android端实现

    近日对于某音的短视频下载有个需求,借鉴网上大神的相关经验,写了个简单的无水印下载视频的APP. 抖音视频无水印下载的Android端APP实现 操作步骤 1. 点击抖音视频的分享按钮,在下面的菜单栏中 ...

  6. java开发抖音短视频无水印下载工具

    思路分析 首先在抖音APP段选择你喜欢的视频进行分享,一般分享链接都是这样的:"http://v.douyin.com/111113/",这并不是真的下载地址,在浏览器中输入上述地 ...

  7. 抖音视频无水印下载工具 绿色版

    抖音视频无水印下载是一款用于抖音视频解析出来并下载的下载工具.可以轻松下载自己喜欢的视频,而且无水印,需要的快来下载使用吧! 抖音视频无水印下载 [工具特点] 支持解析任何抖音视频 解析出来的视频没有 ...

  8. 手绘白板动画视频制作工具VideoScribe 3.11.2 Windows最新横屏竖屏方屏视频号普屏电商六合一汉化中文专业版画布和输出视频无水印支持720p和1080p高清输出

    众所周知VideoScribe(以下简称VS)有7天免费试用版,任何人都可以去下载最新的安装包体验试用,支持Windows 64位系统和macOS苹果系统.免费试用版有以下特点: 默认提供美国英语,西 ...

  9. 火山平台 php_火山小视频无水印下载php源码

    关于火山小视频无水印原谅很简单,下面就分享关于去除火山无水印去除源码. 调用方法:echo huoshan('https://reflow.huoshan.com/hotsoon/s/yOCZCagw ...

  10. 推荐 | GIF转换工具(无水印)|在线视频转gif网站

    推荐 | GIF转换工具(无水印)|在线视频转gif网站 https://convertio.co/zh/video-converter/ 个人推荐这个,还可以安装 谷歌插件,最好还是挂着VPN等,不 ...

最新文章

  1. android studio 2.1正式版,Android Studio 1.2 正式版发布
  2. POJ 1703 Find them, Catch them
  3. router-link标签学习
  4. Step by step to create time dependent view
  5. 创建react应用程序_如何使用React创建一个三层应用程序
  6. 如何从iPhone / iPod Touch / iPad连接
  7. android 动态设置textview的边距,添加边距为动态的Android的TextView(Adding Margins to a dynam...
  8. 页面分享怎么知道通过哪条链接进来的_亚马逊Coupon怎么设置?亚马逊Coupon对获取流量有哪些帮助?...
  9. leetcode python3 简单题198. House Robber
  10. Flutter实战之Flutter应用生命周期 AppLifecycleState浅析
  11. 为什么我离开了管理岗位
  12. 无法启动mysql server问题:“1067”进程意外终止
  13. 软件开发和服务项目价格构成及评估方法
  14. AD按键扫描中串联电阻转换值的计算方法
  15. DSP2812调试:全局变量初始化不是指定的赋值结果
  16. Java 常量池详解(一)字符串常量池
  17. photoshop 30种PS技术 让你照片美到不行~婚纱照可以省一大笔钱了
  18. 大器晚成总比一事无成要强
  19. python pygame 游戏实践: 俄罗斯方块(Tetris Game)第一步
  20. oracle拆分分区语法详解大全_学习笔记:Oracle分区表 添加 删除 合并 删除 交换 拆分等分区表的操作案例...

热门文章

  1. excel 趋势线的定义
  2. cruise软件模型,混动仿真模型,IMMD架构混联混动仿真模型,Cruise混动仿真模型,混联混动汽车动力性经济性仿真
  3. FA 工业自动化设备设计基础
  4. html flash轮播图,flash滚动图片制作 图片列表左右滚动轮播
  5. 【转自知乎】送给前端的你,推荐几篇前端汇总文章
  6. 嵌入式系统的性能评价
  7. CSS - 盒子模型(下)
  8. fastadmin上传视频的操作
  9. 博弈论开发工具Gambit的Python包安装
  10. Codeforces Round #704 (Div. 2) D - Genius‘s Gambit 思维+构造