Skip to content

Commit

Permalink
1、修复版本号
Browse files Browse the repository at this point in the history
2、修改下载出现异常没法重新下载的问题
3、修复部分视频描述文本中出现特殊字符不能创建文件的问题
  • Loading branch information
lijie committed Jul 25, 2022
1 parent 777fe81 commit 0595443
Show file tree
Hide file tree
Showing 5 changed files with 58 additions and 32 deletions.
57 changes: 32 additions & 25 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,47 +2,54 @@

目前只支持抖音视频的下载,需要配合服务端一起使用,可以下载单个视频,也支持下载用户下的多个视频。客户端已集成线上地址,服务器是用Python去抓取真实地址的,想看服务器代码,请点[这里](https://github.com/LuckyLi706/ShortVideoSpider),并且提供提供api接口。客户端支持Android、Windows、Macos、IOS(没有签名文件,需要自己打包),Linux(没适配)


## 编译环境
+ Flutter版本:3.0.1
+ Dart版本:2.17.1

+ Flutter版本:3.0.1
+ Dart版本:2.17.1

## 功能
+ 设置功能
右上角的设置,可以提供url和存储路径的配置。
+ 单个和多个选择框
- 单个
下载单个视频,复制单个视频的分享地址到下面的地址栏中。
- 多个
可以下载多个视频,web进入用户的主页,然后复制到下面的地址栏中,移动端可以通过分享主页复制到下面的地址栏中,下面的max_cursor的输入框可以不管。
+ 获取下载地址
点击该按钮去获取真实的视频地址。
+ 下载视频
获取真实地址成功之后可以点击这个按钮去下载视频。
+ 清除日志
清除日志信息。

+ 设置功能 右上角的设置,可以提供url和存储路径的配置。
+ 单个和多个选择框
- 单个 下载单个视频,复制单个视频的分享地址到下面的地址栏中。
- 多个 可以下载多个视频,web进入用户的主页,然后复制到下面的地址栏中,移动端可以通过分享主页复制到下面的地址栏中,下面的max_cursor的输入框可以不管。
+ 获取下载地址 点击该按钮去获取真实的视频地址。
+ 下载视频 获取真实地址成功之后可以点击这个按钮去下载视频。
+ 清除日志 清除日志信息。

## 编译

```
flutter build apk --no-sound-null-safety 编译apk
flutter build ios --no-sound-null-safety 编译ipa
flutter build windows --no-sound-null-safety 编译windows
flutter build macos --no-sound-null-safety 编译Mac
```

## 截图
+ Windows
![](screenshots/windows.png)
+ Android

+ Windows
![](screenshots/windows.png)
+ Android

<figure class="half">
<img src="screenshots/android_1.png",width=300>
<img src="screenshots/android_2.png",width=300>
</figure>

+ macOS
![](screenshots/macos.png)
+ IOS
+ macOS
![](screenshots/macos.png)
+ IOS

<figure class="half">
<img src="screenshots/ios_1.png",width=300>
<img src="screenshots/ios_2.png",width=300>
</figure>

+ Linux
应该没啥人使用Linux吧,哈哈哈,所以没适配。
+ Linux

应该没啥人使用Linux吧,哈哈哈,所以没适配。

## 免责声明

本仓库只为学习研究,如涉及侵犯个人或者团体利益,请与我取得联系,我将主动删除一切相关资料,谢谢!
2 changes: 1 addition & 1 deletion lib/config/constants.dart
Original file line number Diff line number Diff line change
Expand Up @@ -7,5 +7,5 @@ class Constants {

static String BASE_URL = "http://81.68.122.109:8080";
static String CACHE_PATH = "";
static String APP_VERSION = "1.1.0";
static String APP_VERSION = "1.1.1";
}
12 changes: 8 additions & 4 deletions lib/pages/home/home_page.dart
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ import 'package:flutter/material.dart';
import 'package:permission_handler/permission_handler.dart';
import 'package:short_video_spider_client/pages/mobile/download_page.dart';
import 'package:short_video_spider_client/utils/dio_util.dart';
import 'package:short_video_spider_client/utils/file_util.dart';
import 'package:short_video_spider_client/utils/short_video_util.dart';
import 'package:short_video_spider_client/utils/widget_util.dart';

Expand Down Expand Up @@ -49,7 +50,7 @@ class HomePageState extends State<HomePage> {
return Scaffold(
resizeToAvoidBottomInset: false,
appBar: AppBar(
title: const Text(Constants.APP_NAME),
title: Text("${Constants.APP_NAME} v${Constants.APP_VERSION}"),
actions: [
IconButton(
onPressed: () {
Expand Down Expand Up @@ -216,7 +217,8 @@ class HomePageState extends State<HomePage> {
if (result.data.toString().contains("200")) {
DouYinSingle single =
DouYinSingle.fromJson(result.data);
videoDescList.add(single.videoDesc);
videoDescList.add(
FileUtils.replaceFileName(single.videoDesc!));
urlDownloadList.add(single.videoUrl!);
imageList.add(single.coverImageUrl!);
showLog("获取视频地址成功");
Expand Down Expand Up @@ -258,7 +260,8 @@ class HomePageState extends State<HomePage> {
for (int i = 0;
i < list.coverImageUrlList.length;
i++) {
videoDescList.add(list.videoDescList[i]);
videoDescList.add(FileUtils.replaceFileName(
list.videoDescList[i]));
urlDownloadList.add(list.videoUrlList[i]);
imageList.add(list.coverImageUrlList[i]);
}
Expand Down Expand Up @@ -299,8 +302,8 @@ class HomePageState extends State<HomePage> {
}));
return;
}
isFinish = false;
for (int i = 0; i < urlDownloadList.length; i++) {
isFinish = false;
String end = urlDownloadList[i].toString().endsWith("mp3")
? "mp3"
: "mp4";
Expand All @@ -326,6 +329,7 @@ class HomePageState extends State<HomePage> {
}
}).catchError((e) {
showLog("出现异常:${e.toString()}");
isFinish = true;
});
}
},
Expand Down
5 changes: 3 additions & 2 deletions lib/pages/mobile/download_page.dart
Original file line number Diff line number Diff line change
Expand Up @@ -121,8 +121,8 @@ Widget _getBodyWidget(BuildContext context) {
showDownloadDialog(context);
return;
}
isFinish = false;
for (int i = 0; i < urlDownloadList.length; i++) {
isFinish = false;
String end =
urlDownloadList[i].toString().endsWith("mp3") ? "mp3" : "mp4";
String filePath =
Expand All @@ -148,7 +148,8 @@ Widget _getBodyWidget(BuildContext context) {
isFinish = true;
showLog("出现异常:${e.toString()}");
});
final result = await ImageGallerySaver.saveFile(filePath);
final result =
await ImageGallerySaver.saveFile(filePath); //保存到相册里面去
print(result);
}
},
Expand Down
14 changes: 14 additions & 0 deletions lib/utils/file_util.dart
Original file line number Diff line number Diff line change
Expand Up @@ -16,4 +16,18 @@ class FileUtils {
return dir.path;
}
}

static String replaceFileName(String text) {
return text
.replaceAll("\n", "")
.replaceAll("?", "")
.replaceAll(">", "")
.replaceAll(" ", "")
.replaceAll("\\", "")
.replaceAll("\\", "")
.replaceAll("*", "")
.replaceAll(":", "")
.replaceAll("<", "")
.replaceAll("|", "");
}
}

0 comments on commit 0595443

Please sign in to comment.