# 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://www.douyin.com/video/7013941643233529121