去水印小程序遇到的download合法域名的问题

文章讲述了在处理抖音无水印视频下载时遇到的问题,即抖音视频的真实地址域名多且需设置大量合法域名。作者尝试通过服务器中转来避免这个问题,但因带宽限制影响下载速度。最终,选择列出所有可能的二级域名并校验视频地址的合法性,通过PHP后台代码实现,提高了效率。
摘要由CSDN通过智能技术生成

抖音无水印视频的真实地址域名都是二级域名,大概有80多个,如果设置download合法域名的话就需要添加80多个,而且不一定都添加进去了。

所以一开始是没打算去设置这么多合法域名的。

就在网上寻求解决办法。解决办法是找到了:就是用自己的服务器作为中转站,这样只需要添加自己的域名为合法域名就好了。

php后台代码如下:

function download_file($url){

    set_time_limit ( 0 );

    ini_set("memory_limit","-1");

    ob_end_clean();

    header('Content-Type: application/force-download;');

    header("Content-Type: video/mp4");

    header('Content-Disposition: attachment; filename="'.date('YmdHis').'.mp4"');

          if ($url) {

                     $arr = get_headers($url, true);

                    header("content-length:" . $arr["Content-Length"]);

                    readfile($url);

                    }

}

这种办法是可行的,但是自己的服务器没有太大的带宽,这就导致下载一个小视频都要花费很长时间,这样用户体验肯定很差的。

所以后来索性还是老老实实的添加了80多个二级域名作为合法域名,又怕有些还是没有包括进去。看网上的解决办法就是在后台php

校验得到的视频地址的域名是否在添加的那80多个域名里,不在的话接口重新提交直到拿到合法域名的视频地址。

$all_yuming=array('v93.douyinvod.com','v5-che.douyinvod.com','v6-qos-hourly.douyinvod.com','v26-che.douyinvod.com','v6-cold.douyinvod.com','v83-x.douyinvod.com','v5-coldb.douyinvod.com','v3-z.douyinvod.com','v1-x.douyinvod.com','v6-ab-e1.douyinvod.com','v5-abtest.douyinvod.com','v9-che.douyinvod.com','v83-y.douyinvod.com','v5-litea.douyinvod.com','v3-che.douyinvod.com','v29-cold.douyinvod.com','v5-lite.douyinvod.com','v29-qos-control.douyinvod.com','v5-gdgz.douyinvod.com','v5-ttcp-a.douyinvod.com','v3-b.douyinvod.com','v9-z-qos-control.douyinvod.com','v9-x-qos-hourly.douyinvod.com','v9-chc.douyinvod.com','v9-qos-hourly.douyinvod.com','v5-ttcp-b.douyinvod.com','v6-z-qos-control.douyinvod.com','v5-dlyd.douyinvod.com','v5-coldy.douyinvod.com','v3-c.douyinvod.com','v5-jbwl.douyinvod.com','v26-0015c002.douyinvod.com','v5-gdwy.douyinvod.com','v3-d.douyinvod.com','v3-p.douyinvod.com','v5-gdhy.douyinvod.com','v26-cold.douyinvod.com','v5-lite-a.douyinvod.com','v5-i.douyinvod.com','v5-g.douyinvod.com','v26-qos-daily.douyinvod.com','v5-dash.douyinvod.com','v5-h.douyinvod.com','v5-f.douyinvod.com','v3-a.douyinvod.com','v83.douyinvod.com','v5-cold.douyinvod.com','v3-y.douyinvod.com','v26-x.douyinvod.com','v27-ipv6.douyinvod.com','v9-ipv6.douyinvod.com','v5-yacu.douyinvod.com','v29-ipv6.douyinvod.com','v26-coldf.douyinvod.com','v5.douyinvod.com','v11.douyinvod.com','v6-z.douyinvod.com','v1.douyinvod.com','v9-y.douyinvod.com','v9-z.douyinvod.com','v9.douyinvod.com','v3-x.douyinvod.com','v6-y.douyinvod.com','v3-ipv6.douyinvod.com','v5-e.douyinvod.com','v3.douyinvod.com','v6-ipv6.douyinvod.com','v9-x.douyinvod.com','v6-p.douyinvod.com','v1-2p.douyinvod.com','v1-p.douyinvod.com','v1-ipv6.douyinvod.com','v24.douyinvod.com','v1-dy.douyinvod.com','v6.douyinvod.com','v6-x.douyinvod.com','v26-ipv6.douyinvod.com','v27.douyinvod.com','v92.douyinvod.com','v95.douyinvod.com','douyinvod.com','v26.douyinvod.com','v29.douyinvod.com');

do{

preg_match('#[a-zA-Z0-9][-a-zA-Z0-9]{0,62}(\.[a-zA-Z0-9][-a-zA-Z0-9]{0,62})+\.?#is', $download_url , $yuming);

$is_true=$yuming[0];

}while(!in_array($is_true,$all_yuming));

速度可比第一种快多了!

小程序 download 域名设置缓存时,其实是通过在 response header 中设置 Cache-Control 的 max-age 值来控制缓存的时间。Cache-Control 是 HTTP 协议中一个用来控制缓存行为的字段,它指定了该资源在客户端缓存中的存储时间。 在小程序中,默认情况下,download 域名设置的缓存时间为 60 秒。也就是说,当小程序请求下载资源时,如果服务器返回的 response header 中没有设置 Cache-Control 字段或设置为 max-age=0,则客户端将会在 60 秒之后重新请求该资源。 当然,开发者也可以自定制 download 域名的缓存时间。通过在服务器返回的 response header 中设置 Cache-Control 字段,可以控制缓存的时间长度。开发者可以设置不同的 max-age 值,例如:max-age=3600 表示资源将在请求下载后的一个小时内不会重新从服务器请求,而是直接从客户端缓存中读取。 需要注意的是,开发者在设置缓存时间时需要权衡资源的动态性和实时性。如果资源是经常更新或者需要实时获取的,那么建议将缓存时间设置短一些,例如几分钟。而如果资源是相对稳定且不会经常更新的,那么可以将缓存时间设置长一些,例如几个小时或几天。 总之,小程序 download 域名的缓存时间可以通过在服务器的 response header 中设置 Cache-Control 字段的 max-age 值来控制,开发者可以根据实际情况来自定义缓存时间,以达到更好的用户体验和资源利用效率。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值