抖音无水印视频解析接口 抖音无水印视频思路 抖音解析PHP代码 php解析抖音无水印视频
这几天疫情严重,放假在家无所事事,闲着无聊写点代码,今天来说说PHP无水印解析抖音视频

网上的代码银狐自己试了试都是没用的,文末附上本人的代码,可以直接用,文章和代码都是今天(2022/3/13)写的
流程:打开分享链接,获取头,得到真实地址,得到真实地址里面的videoID,通过抖音官方API获取json数据得到查询真实无水印视频地址的网页,Curl无水印网页,返回头部信息,取得抖音无水印视频地址
先来段抖音撩妹祖师爷的视频:https://v.douyin.com/NrRah9w/
这是app里面的分享链接,但是我们在网页中打开,发现是不一样的网址。
先说手机端的,在网页中打开出现的网址是:
https://www.iesdouyin.com/share/video/7074203714344471816/
其中,7074203714344471816,是这部视频的videoid
那么我们怎么获取跳转的地址,PHP代码:
$header = get_headers('https://v.douyin.com/NrRah9w/',1);
$realurl = $header['Location'][1]; //获取真实链接
第一行代码先获取头,第二行获取真实链接,懂得都懂,自己用var_dump看
然后抖音有这么一个接口会返回视频数据,通过videoid来查询:
https://www.iesdouyin.com/web/api/v2/aweme/iteminfo/?item_ids=videoid
如:https://www.iesdouyin.com/web/api/v2/aweme/iteminfo/?item_ids=7074203714344471816
返回一大段json数据过来

重要的数据是:
"url_list":["https://aweme.snssdk.com/aweme/v1/playwm/?video_id=v0200fg10000c8m9t3jc77u6h9celcbg&ratio=720p&line=0"]}
"vid":"v0200fg10000c8m9t3jc77u6h9celcbg"
我们取json就是把他转换成数组,然后取vid,我们可以看到,访问url_list就是出现的是真实无水印的视频链接,那么我们通过vid就可以查询到真实无水印的视频地址
vid位置:
$getvid = json_decode('https://www.iesdouyin.com/web/api/v2/aweme/iteminfo/?item_ids=7074203714344471816', true);
$dy_vid= $getvid['item_list'][0]['video']['vid'];//得到vid
我们用curl去请求:https://aweme.snssdk.com/aweme/v1/playwm/?video_id=v0200fg10000c8m9t3jc77u6h9celcbg&ratio=720p&line=0
请求这个网页会302跳转到真实视频地址。
代码:《PHP CURL 返回请求网页头信息》
真实链接:$headers['url']
PC网页版的抖音和APP抖音的链接不一样,PC端更为简洁,银狐的代码里面有这两端的实现方法,各位自己学习和优化代码。
例子:
https://www.ityinhu.com/api/douyin/api.php?url=https://v.douyin.com/NrRah9w/
如果打开上面的网址发现没有内容了,那么方法失效了。
源码打包下载地址:https://www.ityinhu.com/646.html
我有一个字符串input="maybe(thisis|thatwas)some((nice|ugly)(day|night)|(strange(weather|time)))"Ruby中解析该字符串的最佳方法是什么?我的意思是脚本应该能够像这样构建句子:maybethisissomeuglynightmaybethatwassomenicenightmaybethiswassomestrangetime等等,你明白了......我应该一个字符一个字符地读取字符串并构建一个带有堆栈的状态机来存储括号值以供以后计算,还是有更好的方法?也许为此目的准备了一个开箱即用的库?
如何在buildr项目中使用Ruby?我在很多不同的项目中使用过Ruby、JRuby、Java和Clojure。我目前正在使用我的标准Ruby开发一个模拟应用程序,我想尝试使用Clojure后端(我确实喜欢功能代码)以及JRubygui和测试套件。我还可以看到在未来的不同项目中使用Scala作为后端。我想我要为我的项目尝试一下buildr(http://buildr.apache.org/),但我注意到buildr似乎没有设置为在项目中使用JRuby代码本身!这看起来有点傻,因为该工具旨在统一通用的JVM语言并且是在ruby中构建的。除了将输出的jar包含在一个独特的、仅限ruby
我主要使用Ruby来执行此操作,但到目前为止我的攻击计划如下:使用gemsrdf、rdf-rdfa和rdf-microdata或mida来解析给定任何URI的数据。我认为最好映射到像schema.org这样的统一模式,例如使用这个yaml文件,它试图描述数据词汇表和opengraph到schema.org之间的转换:#SchemaXtoschema.orgconversion#data-vocabularyDV:name:namestreet-address:streetAddressregion:addressRegionlocality:addressLocalityphoto:i
在rails源中:https://github.com/rails/rails/blob/master/activesupport/lib/active_support/lazy_load_hooks.rb可以看到以下内容@load_hooks=Hash.new{|h,k|h[k]=[]}在IRB中,它只是初始化一个空哈希。和做有什么区别@load_hooks=Hash.new 最佳答案 查看rubydocumentationforHashnew→new_hashclicktotogglesourcenew(obj)→new_has
我正在使用ruby1.9解析以下带有MacRoman字符的csv文件#encoding:ISO-8859-1#csv_parse.csvName,main-dialogue"Marceu","Giveittohimóhe,hiswife."我做了以下解析。require'csv'input_string=File.read("../csv_parse.rb").force_encoding("ISO-8859-1").encode("UTF-8")#=>"Name,main-dialogue\r\n\"Marceu\",\"Giveittohim\x97he,hiswife.\"\
我的主要目标是能够完全理解我正在使用的库/gem。我尝试在Github上从头到尾阅读源代码,但这真的很难。我认为更有趣、更温和的踏脚石就是在使用时阅读每个库/gem方法的源代码。例如,我想知道RubyonRails中的redirect_to方法是如何工作的:如何查找redirect_to方法的源代码?我知道在pry中我可以执行类似show-methodmethod的操作,但我如何才能对Rails框架中的方法执行此操作?您对我如何更好地理解Gem及其API有什么建议吗?仅仅阅读源代码似乎真的很难,尤其是对于框架。谢谢! 最佳答案 Ru
我的假设是moduleAmoduleBendend和moduleA::Bend是一样的。我能够从thisblog找到解决方案,thisSOthread和andthisSOthread.为什么以及什么时候应该更喜欢紧凑语法A::B而不是另一个,因为它显然有一个缺点?我有一种直觉,它可能与性能有关,因为在更多命名空间中查找常量需要更多计算。但是我无法通过对普通类进行基准测试来验证这一点。 最佳答案 这两种写作方法经常被混淆。首先要说的是,据我所知,没有可衡量的性能差异。(在下面的书面示例中不断查找)最明显的区别,可能也是最著名的,是你的
几个月前,我读了一篇关于rubygem的博客文章,它可以通过阅读代码本身来确定编程语言。对于我的生活,我不记得博客或gem的名称。谷歌搜索“ruby编程语言猜测”及其变体也无济于事。有人碰巧知道相关gem的名称吗? 最佳答案 是这个吗:http://github.com/chrislo/sourceclassifier/tree/master 关于ruby-寻找通过阅读代码确定编程语言的rubygem?,我们在StackOverflow上找到一个类似的问题:
我目前正在使用以下方法获取页面的源代码:Net::HTTP.get(URI.parse(page.url))我还想获取HTTP状态,而无需发出第二个请求。有没有办法用另一种方法做到这一点?我一直在查看文档,但似乎找不到我要找的东西。 最佳答案 在我看来,除非您需要一些真正的低级访问或控制,否则最好使用Ruby的内置Open::URI模块:require'open-uri'io=open('http://www.example.org/')#=>#body=io.read[0,50]#=>"["200","OK"]io.base_ur
简而言之错误:NOTE:Gem::SourceIndex#add_specisdeprecated,useSpecification.add_spec.Itwillberemovedonorafter2011-11-01.Gem::SourceIndex#add_speccalledfrom/opt/local/lib/ruby/site_ruby/1.8/rubygems/source_index.rb:91./opt/local/lib/ruby/gems/1.8/gems/rails-2.3.8/lib/rails/gem_dependency.rb:275:in`==':und