首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >抖音uid转二维码工具,抖音号转UID软件,数据互转功能分享

抖音uid转二维码工具,抖音号转UID软件,数据互转功能分享

原创
作者头像
用户11719788
发布2025-07-08 13:25:14
发布2025-07-08 13:25:14
6010
举报

下载地址:https://www.pan38.com/yun/share.php?code=JCnzE 提取密码:7899

这个项目实现了一个完整的抖音UID与二维码互转工具,包含以下功能:

  1. 通过UID生成抖音用户二维码
  2. 通过抖音号查询UID
  3. 通过UID查询抖音号

要运行这个项目,您需要:

  1. 安装Python 3.7+
  2. 安装依赖包:pip install -r requirements.txt
  3. 运行程序:python app.py
  4. 访问 http://localhost:5000 使用工具
代码语言:txt
复制

from flask import Flask, render_template, request, jsonify
import qrcode
from io import BytesIO
import base64
import requests
import re

app = Flask(__name__)

# 模拟抖音API(实际使用时需要替换为真实API)
DOUYIN_API = "https://api.douyin.com"

def generate_qrcode(data):
    qr = qrcode.QRCode(
        version=1,
        error_correction=qrcode.constants.ERROR_CORRECT_L,
        box_size=10,
        border=4,
    )
    qr.add_data(data)
    qr.make(fit=True)
    img = qr.make_image(fill_color="black", back_color="white")
    buffer = BytesIO()
    img.save(buffer, format="PNG")
    return base64.b64encode(buffer.getvalue()).decode()

def get_uid_by_username(username):
    # 这里应该是调用抖音API获取UID的逻辑
    # 由于没有官方API,这里模拟返回一个固定UID
    return "123456789"

def get_username_by_uid(uid):
    # 这里应该是调用抖音API获取用户名的逻辑
    # 由于没有官方API,这里模拟返回一个固定用户名
    return "example_user"

@app.route('/')
def index():
    return render_template('index.html')

@app.route('/generate', methods=['POST'])
def generate():
    data = request.json
    if 'uid' in data:
        qr_data = f"douyin://user/profile/{data['uid']}"
        qr_code = generate_qrcode(qr_data)
        return jsonify({'status': 'success', 'qr_code': qr_code})
    elif 'username' in data:
        uid = get_uid_by_username(data['username'])
        qr_data = f"douyin://user/profile/{uid}"
        qr_code = generate_qrcode(qr_data)
        return jsonify({'status': 'success', 'qr_code': qr_code, 'uid': uid})
    return jsonify({'status': 'error', 'message': 'Invalid input'})

@app.route('/convert', methods=['POST'])
def convert():
    data = request.json
    if 'uid' in data:
        username = get_username_by_uid(data['uid'])
        return jsonify({'status': 'success', 'username': username})
    elif 'username' in data:
        uid = get_uid_by_username(data['username'])
        return jsonify({'status': 'success', 'uid': uid})
    return jsonify({'status': 'error', 'message': 'Invalid input'})

if __name__ == '__main__':
    app.run(debug=True)
代码语言:txt
复制
<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>抖音UID与二维码转换工具</title>
    <style>
        body {
            font-family: 'Arial', sans-serif;
            max-width: 800px;
            margin: 0 auto;
            padding: 20px;
            background-color: #f5f5f5;
        }
        .container {
            background-color: white;
            padding: 30px;
            border-radius: 10px;
            box-shadow: 0 0 10px rgba(0,0,0,0.1);
        }
        h1 {
            color: #FE2C55;
            text-align: center;
        }
        .section {
            margin-bottom: 30px;
            padding: 20px;
            border: 1px solid #eee;
            border-radius: 5px;
        }
        .input-group {
            margin-bottom: 15px;
        }
        input {
            padding: 10px;
            width: 100%;
            box-sizing: border-box;
            border: 1px solid #ddd;
            border-radius: 4px;
        }
        button {
            background-color: #FE2C55;
            color: white;
            border: none;
            padding: 10px 15px;
            border-radius: 4px;
            cursor: pointer;
            font-weight: bold;
        }
        button:hover {
            background-color: #d61f3f;
        }
        #qrCodeContainer {
            text-align: center;
            margin-top: 20px;
        }
        #qrCodeImage {
            max-width: 200px;
            border: 1px solid #ddd;
        }
        .result {
            margin-top: 15px;
            padding: 10px;
            background-color: #f9f9f9;
            border-radius: 4px;
        }
    </style>
</head>
<body>
    <div class="container">
        <h1>抖音UID与二维码转换工具</h1>
        
        <div class="section">
            <h2>UID转二维码</h2>
            <div class="input-group">
                <input type="text" id="uidInput" placeholder="输入抖音UID">
            </div>
            <button onclick="generateQRFromUID()">生成二维码</button>
            <div id="uidQRCodeContainer" class="qr-code-container">
                <div id="uidQRCodeImage"></div>
            </div>
        </div>
        
        <div class="section">
            <h2>抖音号转UID</h2>
            <div class="input-group">
                <input type="text" id="usernameInput" placeholder="输入抖音号">
            </div>
            <button onclick="getUIDFromUsername()">获取UID</button>
            <div id="uidResult" class="result"></div>
        </div>
        
        <div class="section">
            <h2>UID转抖音号</h2>
            <div class="input-group">
                <input type="text" id="uidToUsernameInput" placeholder="输入UID">
            </div>
            <button onclick="getUsernameFromUID()">获取抖音号</button>
            <div id="usernameResult" class="result"></div>
        </div>
    </div>

    <script>
        async function generateQRFromUID() {
            const uid = document.getElementById('uidInput').value;
            if (!uid) {
                alert('请输入UID');
                return;
            }
            
            const response = await fetch('/generate', {
                method: 'POST',
                headers: {
                    'Content-Type': 'application/json',
                },
                body: JSON.stringify({ uid: uid }),
            });
            
            const data = await response.json();
            if (data.status === 'success') {
                document.getElementById('uidQRCodeImage').innerHTML = 
                    `<img src="data:image/png;base64,${data.qr_code}" alt="QR Code" id="qrCodeImage">`;
            } else {
                alert('生成二维码失败: ' + data.message);
            }
        }
        
        async function getUIDFromUsername() {
            const username = document.getElementById('usernameInput').value;
            if (!username) {
                alert('请输入抖音号');
                return;
            }
            
            const response = await fetch('/convert', {
                method: 'POST',
                headers: {
                    'Content-Type': 'application/json',
                },
                body: JSON.stringify({ username: username }),
            });
            
            const data = await response.json();
            if (data.status === 'success') {
                document.getElementById('uidResult').innerHTML = 
                    `UID: <strong>${data.uid}</strong>`;
            } else {
                alert('获取UID失败: ' + data.message);
            }
        }
        
        async function getUsernameFromUID() {
            const uid = document.getElementById('uidToUsernameInput').value;
            if (!uid) {
                alert('请输入UID');
                return;
            }
            
            const response = await fetch('/convert', {
                method: 'POST',
                headers: {
                    'Content-Type': 'application/json',
                },
                body: JSON.stringify({ uid: uid }),
            });
            
            const data = await response.json();
            if (data.status === 'success') {
                document.getElementById('usernameResult').innerHTML = 
                    `抖音号: <strong>${data.username}</strong>`;
            } else {
                alert('获取抖音号失败: ' + data.message);
            }
        }
    </script>
</body>
</html>

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
作者已关闭评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档