吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 8098|回复: 19
收起左侧

[Python 原创] [Python]X音去水印解析接口源码

[复制链接]
ermao 发表于 2019-8-24 15:21
本帖最后由 wushaominkk 于 2019-8-25 12:10 编辑

python3,使用之前先安装依赖flaskrequests
学了一下flask写api,照着葫芦画瓢写出来的,
有啥出错的的请大佬指正。




请求URL示例:
URL:
[Asm] 纯文本查看 复制代码
http://127.0.0.1:2222/api/douyin/parse?url=http://v.douyin.com/6JqLLM/

作品ID:
[Asm] 纯文本查看 复制代码
http://127.0.0.1:2222/api/douyin/parse?id=6683669865368259852



源码:
[Python] 纯文本查看 复制代码
# -*- encoding: utf-8 -*-
'''
@file    :   douyin.py
@Time    :   2019/08/24 10:16:18
@AuThor  :   [url=mailto:ermao@52pojie.cn]ermao@52pojie.cn[/url]
@version :   1.0
@Desc    :   抖音去水印解析
'''

# start
from flask import Flask, jsonify, request
import requests
import re

app = Flask(__name__)

header = {
    'User-Agent':
    'Mozilla/5.0 (Linux; Android 5.0; SM-G900P Build/LRX21T) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.25 Mobile Safari/537.36'
}


@app.route('/api')
def index():
    res = {'Hello': 'API !'}
    return jsonify(res)


@app.errorhandler(404)
def not_found(error):
    return jsonify({'error': 'NOT FOUND'}), 404


@app.route('/api/douyin/parse')
def Video_parsing():
    if 'id' in request.args and len(request.args['id']) == 19:
        res = get_video(request.args['id'])
    elif 'url' in request.args and 'douyin.com' in request.args['url']:
        res = get_id(request.args['url'])
    else:
        res = {'error': 'Invalid Parameter'}
    return jsonify(res)


def get_id(url):
    try:
        r = requests.head(url)
        id = re.findall(r'/video/(\d{19})/', r.headers['Location'])[0]
        res = get_video(id)
        return res
    except Exception:
        return {'error': 'Invalid URL'}


def get_video(id):
    html = requests.get('https://www.iesdouyin.com/share/video/' + id +
                        '/?mid',
                        headers=header).text
    dytk_re = re.findall(r'dytk: "(\w{64})"', html)
    try:
        dtyk = dytk_re[0]
        res_json = requests.get(
            'https://www.iesdouyin.com/web/api/v2/aweme/iteminfo/?item_ids=' +
            id + '&dytk=' + dtyk).json()
        temp_url = res_json['item_list'][0]['video']['play_addr']['url_list'][0]
        r = requests.head(temp_url, headers=header)
        real_addr = r.headers['Location']
        if '/video/m/' in real_addr:
            res = {
                'id': id,
                'uri': res_json['item_list'][0]['video']['vid'],
                'desc': res_json['item_list'][0]['desc'],
                'pic': res_json['item_list'][0]['video']['origin_cover']['url_list'][0],
                'gif': res_json['item_list'][0]['video']['dynamic_cover']['url_list'][0],
                'play_addr': real_addr
            }
            return res
    except Exception:
        return {'error': 'An exception occurred'}


if __name__ == "__main__":
    app.run(host='0.0.0.0', port=2222)


免费评分

参与人数 7吾爱币 +6 热心值 +7 收起 理由
cwf + 1 + 1 用心讨论,共获提升!可以发一份教程么
大象无形 + 1 PHP版抖音去水印http://www.douqq.com/douyin/
tyyv110 + 1 + 1 我很赞同!
taobaogd + 1 大神,看的教程能否分享一份,多谢。
zhan170 + 1 + 1 大哥牛牪犇逼
苏紫方璇 + 2 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
bricher9988 + 1 + 1 用心讨论,共获提升!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

 楼主| ermao 发表于 2019-8-28 00:49
yumao 发表于 2019-8-28 00:18
大神你好
获取到最后的uri后
“'uri': res_json['item_list'][0]['video']['vid'],”

源码里不是有了无水印地址了嘛,要用URI解析的话,就是参照这个源码里的temp_url ,替换URI就行了
 楼主| ermao 发表于 2019-8-24 20:02
少见多怪 发表于 2019-8-24 19:04
你好  大神   我这边有一个已经上线的去水印小程序,想请教下  怎么把代码添加进去,谢谢,

哪个加到哪个,有源码就随便套呗
andyy2573 发表于 2019-8-24 15:43
Zack12357 发表于 2019-8-24 16:30
问下楼主你这有没有快手去水印的啊?感谢分享
q313571879 发表于 2019-8-24 16:33
支持下老哥
少见多怪 发表于 2019-8-24 19:04
你好  大神   我这边有一个已经上线的去水印小程序,想请教下  怎么把代码添加进去,谢谢,
 楼主| ermao 发表于 2019-8-24 20:00
Zack12357 发表于 2019-8-24 16:30
问下楼主你这有没有快手去水印的啊?感谢分享

没有没有
少见多怪 发表于 2019-8-25 14:42
ermao 发表于 2019-8-24 20:02
哪个加到哪个,有源码就随便套呗

我有源码,能加微信交流下吗
yumao 发表于 2019-8-28 00:18
大神你好
获取到最后的uri后
“'uri': res_json['item_list'][0]['video']['vid'],”
最终怎么获取到无水印的地址
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-25 19:23

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表