# parsing-tiktok-video **Repository Path**: itzong/parsing-tiktok-video ## Basic Information - **Project Name**: parsing-tiktok-video - **Description**: 解析抖音视频 返回 解析后的JSON数据 保存视频到minio中 - **Primary Language**: Java - **License**: Not specified - **Default Branch**: spring-boot - **Homepage**: https://smallblog.cn/ - **GVP Project**: No ## Statistics - **Stars**: 8 - **Forks**: 3 - **Created**: 2021-11-26 - **Last Updated**: 2024-09-20 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # parsing-tiktok-video #### 介绍 解析抖音视频 返回 解析后的JSON数据 保存视频到minio中 #### 软件架构 ```xml org.jsoup jsoup 1.13.1 net.sourceforge.htmlunit htmlunit 2.33 cn.wanghaomiao JsoupXpath 2.4.0 org.projectlombok lombok 1.18.20 org.apache.httpcomponents httpclient 4.5.13 io.minio minio 8.3.3 com.squareup.okhttp3 okhttp 4.0.0 com.squareup.okio okio 2.10.0 com.alibaba fastjson 1.2.72 ``` #### 安装教程 1. git clone https://gitee.com/zong_zh/parsing-tiktok-video.git 2. 修改`jdbc.properties`文件中的参数 3. 修改`minio.properties`中的参数 4. 启动路径:http://localhost:8080/WebsiteApplet/index.htnl #### 使用说明 1. 如果只想解析可以去掉下面代码 :com/xiaozheng/tiktok/service/ResolveService.java:141 ```java if (b) { CompletableFuture infoFuture = CompletableFuture.supplyAsync(() -> { String result = fileOperService.fileUpload(videoEntity.getPlayApi(), videoEntity.getAwemeId(), null); System.out.println("结果:"+result); return result; },ThreadConfig.threadPoolExecutor()); return JSON.toJSONString(videoEntity); } ``` 2. 不太会用异步线程,使用方法有问题,自行修改 3. `htmlunit` 模拟浏览器 启动慢 , 请耐心等待解析 4. 修改minio的上传代码 com.xiaozheng.tiktok.service.FileOperService#fileUpload 4.1 `douyin-video` 是 当前项目的桶名 4.2 minio开始上传代码 ```java minioClient.putObject(PutObjectArgs.builder().bucket("douyin-video").object(format + "/" + finalFileName).stream( inputStream, -1, 10485760) .contentType("video/mp4") .build()); // 上传完毕拼接minio请求地址 result = "https://data.smallblog.cn" + "/douyin-video/" + format + "/" + finalFileName; ``` 5. 每月都要修改的位置 > 当发现 解析无响应 可能你就要修改这里的代码了 可能 抖音修改了json的键 代码无法获取 com/xiaozheng/tiktok/service/ResolveService.java:110 ```java // TODO 每个月检查一下 键值是否正确 JSONObject c_20 = jsonObject.getJSONObject("32"); ``` ![](https://data.smallblog.cn/blog-images/202111/ba3df8af4df711ec957e005056c00008.png) 来一个好看的猫:https://www.douyin.com/video/7013941643233529121