花不开但要富贵 发表于 2020-9-25 17:54

各种某音去水印源码,PHP、Python、易语言......

本帖最后由 1047861073 于 2020-9-26 10:10 编辑


Python版
import re

import requests, json

url = 'https://v.douyin.com/JB7VyAw/'
api = 'https://www.iesdouyin.com/web/api/v2/aweme/iteminfo/?item_ids='

header = {
    'user-agent': 'Mozilla/5.0 (iPhone; U; CPU iPhone OS 4_0 like Mac OS X; en-us) AppleWebKit/532.9 (KHTML, like Gecko) Version/4.0.5 Mobile/8A293 Safari/6531.22.7'
}


def video_url():
    url = input("输入抖音链接:")
    bdurl = r"http?://(?:||[$-_@.&+]|[!*\(\),]|(?:%))+"
    url = re.findall(bdurl, url)

    text = requests.get(url, headers=header)

    ress = r'''(?<=share/video/).*(?=/)'''
    res = re.findall(ress, text.url)

    id_url = api + res
    urls = requests.get(id_url,headers=header)


    videos = urls.json()['item_list']['video']['play_addr']['url_list']

    wat = videos.replace('wm','')    # 去水印后地址
    print(wat)
    t = requests.get(wat,headers=header).content
    with open('就是刚刚的抖音.mp4','wb') as data_file:
      data_file.write(t)
      input('获取成功!按回车退出........')

    #print(t.text)

video_url()
PHP版



public function getLink(Request $request){
    $url = I('url');
    $pattern = '{(http|https):\/\/[\w\-_]+(\.[\w\-_]+)+([\w\-\.,@?^=%&:/~\+#]*[\w\-\@?^=%&/~\+#])?}';
    preg_match($pattern,$url,$url);
    if ($url){
      $update['share_url'] = (string)$url;
    }else{
      $this->returnJson(0,'error',['code'=>0,'msg'=>'获取失败']);
    }
    $res = Db::name('log')->where('share_url',$update['share_url'])->find();
    $reqData['code'] = 1;
    $reqData['msg'] = '解析成功';
    if (!$res){
      $url = (string)$url;
      $pattern = '{(?<=\.).*(?=\.com)}';
      preg_match($pattern,$url,$type);
      $type = (string)$type;
      switch ($type){
            case 'douyin':
                $res = $this->douyin($url,'insert');
                break;
            case 'kuaishou':
                $res = $this->ks($url,'insert');
                break;
            default:
                $this->returnJson(0,'error',['code'=>0,'msg'=>'暂不支持该网站']);
                break;
      }
      $reqData['addr'] = $res['addr_url'];
      $reqData['title'] = $res['title'];
      $reqData['cover'] = $res['cover'];
      $reqData['is_url'] = $res['is_url'];
      $this->returnJson(1,'success',$reqData);
    }else{
      //查询是否超过一小时,超过则更新
      $over_time = time() - $res['create_time'];
      if ($over_time>3600){
            $url = (string)$url;
            $pattern = '{(?<=\.).*(?=\.com)}';
            preg_match($pattern,$url,$type);
            $type = (string)$type;
            if ($type=='douyin'){
                $res = $this->douyin($url,'update');
            }elseif ($type=='kuaishou'){
                $res = $this->ks($url,'update');
            }
            $reqData['addr'] = $res['addr_url'];
            $reqData['title'] = $res['title'];
            $reqData['cover'] = $res['cover'];
            $reqData['is_url'] = $res['is_url'];
            $this->returnJson(1,'success',$reqData);
      }else{
            $reqData['addr'] = $res['addr_url'];
            $reqData['cover'] = $res['cover'];
            $reqData['title'] = $res['title'];
            $reqData['is_url'] = $res['is_url'];
            $this->returnJson(1,'success',$reqData);
      }

    }
}
protected function douyin($url,$action = 'insert'){
    $update['share_url'] = $url;
    $url = get_headers($url,true);
    $url = $url['location'];
    $pattern = '{(?<=share\/video\/).*(?=\/)}';
    preg_match($pattern,$url,$video_id);
    $video_id = $video_id;
    $ql = QueryList::get('https://www.iesdouyin.com/web/api/v2/aweme/iteminfo/?item_ids='.$video_id);
    $res = json_decode($ql->getHtml(),true);
    $url = $res['item_list']['video']['play_addr']['url_list'];
    $update['title'] = $res['item_list']['share_info']['share_title'];
    $update['cover'] = $res['item_list']['music']['cover_large']['url_list'];
    $update['create_time'] = time();
    $url = str_replace('playwm','play',$url);
    $update['is_url'] = $url;
    $url = get_headers($url,true);
    $url = $url['location'];
    $update['addr_url'] = $url;
    if ($action=='insert'){
      $id = Db::name('log')->insertGetId($update);
      $res = Db::name('log')->where('id',$id)->find();
    }else{
      $res = Db::name('log')->where('share_url',$update['share_url'])->update($update);
      $res = Db::name('log')->where('share_url',$update['share_url'])->find();
    }
    return $res;
}
php版套用了@yanwu666 的模版,十分感谢易语言版


使用了精易模块和精易皮肤模块。

土豪通道 :
平民通道:链接: https://pan.baidu.com/s/1K8I4IyinOJvbqdNco4GVBA 提取码: zps2

觉得好的大哥给个评分吧↓↓↓
谢谢~~~

challengexun 发表于 2020-9-27 23:23

1047861073 发表于 2020-9-27 23:20
不是调用接口的,可以自己写一个接口

api = 'https://www.iesdouyin.com/web/api/v2/aweme/iteminfo/?item_ids='
这个不是接口吗,自己写接口应该用什么技术,求教一下大佬{:1_918:}

qystudio 发表于 2020-10-12 20:13

challengexun 发表于 2020-9-27 23:23
api = 'https://www.iesdouyin.com/web/api/v2/aweme/iteminfo/?item_ids='
这个不是接口吗,自己写接口 ...

这是抖音的官方接口
自己写可以用PHP之类的写

15278066219 发表于 2020-9-25 17:58

支支持 虽然看不懂{:301_997:}

猪头。 发表于 2020-9-25 18:19

这个就很强大了,膜拜

白晓生 发表于 2020-9-25 19:02

现在好质量的真是不太好搞了,感谢楼主分享试试

色色 发表于 2020-9-25 19:12

大佬易语言可以写软吗

cndp333 发表于 2020-9-25 19:29

打不开,不是成品

Learning1 发表于 2020-9-25 19:48

厉害 很是实用

hackgsl 发表于 2020-9-25 19:54

这就过份了,是不是还得送到他们面前呀

逐雅斋 发表于 2020-9-25 20:10

这个很强!感谢分享!

yuuma 发表于 2020-9-25 20:36

感谢分享
页: [1] 2 3 4
查看完整版本: 各种某音去水印源码,PHP、Python、易语言......