diff --git a/docs/.vitepress/config.mts b/docs/.vitepress/config.mts index 5a76df05..0fc351b7 100644 --- a/docs/.vitepress/config.mts +++ b/docs/.vitepress/config.mts @@ -6,7 +6,7 @@ const require = createRequire(import.meta.url) const pkg = require('vitepress/package.json') -const version = "v0.0.1.3-pw.1" +const version = "v0.0.1.4-pw.1" // https://vitepress.dev/reference/site-config export default defineConfig({ diff --git a/docs/cli.md b/docs/cli.md index e69de29b..4ce0db4b 100644 --- a/docs/cli.md +++ b/docs/cli.md @@ -0,0 +1,106 @@ +# 命令行 + +`F2` 配置文件独立于 CLI 命令参数且`最低优先`。 + +## CLI临时配置 + +CLI 参数命令优先级最高,所以在不修改配置文件的情况下就可以使用 CLI 参数更改为下载「抖音」用户`喜欢`的所有作品。因此也可以在 CLI 中临时下载A的直播,B的作品与C的喜欢。 + +::: code-group + +```bash [用户A] +$ f2 -d dy -c C:\Users\JohnserfSeed\Desktop\A.yaml -M live -u https://live.douyin.com/xxxxxxxxx +``` + +```bash [用户B] +$ f2 -d dy -c C:\Users\JohnserfSeed\Desktop\B.yaml -M post +``` + +```bash [用户C] +$ f2 -d dy -c C:\Users\JohnserfSeed\Desktop\C.yaml -M like +``` +::: + +赶快试试吧! + +::: tip 说明 +之后的版本会简化操作。不需要再指定该用户的直播间就可以切换下载该用户直播的模式。 +更多的 CLI 命令请查阅 [CLI 参考](/cli)。 +::: + +::: warning 重要 +- 命名方式也不受限制,你可以设置`dy-A.yaml`、`dy-B.yaml`、`tk-A.yaml`、`tk-B.ymal`用以区分不同app的用户配置。 +- 配置的操作是通用的,举例用的是douyin的配置文件,tiktok与其他 F2 应用的配置文件的操作是一模一样的。 +::: + + +## 拓展 + +如果不想设置很多配置文件,那就使用主配置。 + +下载「抖音」用户`发布`的所有作品,只需要在主配置文件中设置`mode: post`即可。 + +::: code-group + +```sh [Windows] +$ f2 dy -c f2/conf/app.yaml +``` + +```sh [Linux] +$ f2 dy -c f2/conf/app.yaml +``` + +```sh [MacOS] +$ f2 dy -c f2/conf/app.yaml +``` +::: + +下载「抖音」用户`喜欢`的所有作品,CLI 中设置`mode: like`即可。 + +::: code-group + +```sh [Windows] +$ f2 dy -M like -c f2/conf/app.yaml +``` + +```sh [Linux] +$ f2 dy -M like -c f2/conf/app.yaml +``` + +```sh [MacOS] +$ f2 dy -M like -c f2/conf/app.yaml +``` +::: + +下载「抖音」用户`单个`的作品: + +::: code-group + +```sh [Windows] +$ f2 dy -M one -u https://v.douyin.com/iRNBho6u/ -c conf/app.yaml +``` + +```sh [Linux] +$ f2 dy -M one -u https://v.douyin.com/iRNBho6u/ -c conf/app.yaml +``` + +```sh [MacOS] +$ f2 dy -M one -u https://v.douyin.com/iRNBho6u/ -c conf/app.yaml +``` +::: + +F2 会智能的识别出混乱文本中的链接,同时也支持长短链的输入。 + +::: details 支持的链接格式 + +<<< @/snippets/douyin/support-link.md +::: + +::: tip 需要注意的是 +在CLI模式下,带有其他信息的文本需要用英文引号将其完整包裹: + +```sh [Windows] +$ f2 dy -M one -u '7.64 gOX:/ w@f.oD 05/14 世界这本书 又多读了一页。冰岛????旅行记# 冰岛 https://v.douyin.com/iR2syBRn/ 复制此链接,打开Dou音搜索,直接观看视! +' -c conf/app.yaml +``` +::: \ No newline at end of file diff --git a/docs/guide/what-is-f2.md b/docs/guide/what-is-f2.md index f8d55b6a..098b2d3b 100644 --- a/docs/guide/what-is-f2.md +++ b/docs/guide/what-is-f2.md @@ -7,15 +7,11 @@ 开发者可以直接定义自己的配置文件,然后在测试时通过`-c`参数指定配置文件的路径,例如: ```bash -f2 -d dy -c conf/app.yaml +f2 -d DEBUG dy -c app.yaml ``` 也可以在代码中指定配置文件的路径,例如: -```python -import f2 - -f2.APP_CONFIG_FILE_PATH = "conf/app.yaml" -``` +<<< @/snippets/set-debug.py#set-config-snippet{3} ## 调试日志级别 @@ -23,7 +19,6 @@ f2.APP_CONFIG_FILE_PATH = "conf/app.yaml" ![set-debug](/douyin/set-debug.png) - ## 日志输出到控制台 <<< @/snippets/set-debug.py#log-2-console-snippet{5} @@ -32,4 +27,4 @@ f2.APP_CONFIG_FILE_PATH = "conf/app.yaml" ::: tip 提示 如果你想要输出到控制台的日志更加详细,可以使用 `DEBUG` 级别。并且后续必须使用该logger对象来输出日志,否则日志将不会输出到控制台。 -::: \ No newline at end of file +::: diff --git a/docs/install.md b/docs/install.md index 263bbcaa..4d0a56db 100644 --- a/docs/install.md +++ b/docs/install.md @@ -6,32 +6,38 @@ - [Windows Terminal](https://aka.ms/terminal) 终端,通过命令行界面(CLI)访问。 - 支持[Python](https://en.wikipedia.org/wiki/python) 语法的文本编辑器。 - 推荐使用[VSCode](https://code.visualstudio.com/) 或[VSCode在线](https://vscode.dev)。 +- [Git](https://git-scm.com/) ,用于开发者从GitHub上克隆项目。 -`F2` 可单独使用,也可安装到现有项目中。在这两种情况下,你都可以使用以下命令选择不同版本安装: +## 包管理器安装 + +`F2` 可单独使用,也可安装到现有项目中。在这两种情况下,你都可以使用以下命令选择不同版本安装: ::: code-group ```sh [Windows] -$ pip install f2 # 最新版本 -$ pip install f2==x.x.x # 指定版本 -$ pip install 'f2>=x.x.x' # 最小版本 +$ pip install f2 # 最新版本 +$ pip install f2==x.x.x.x # 指定版本 +$ pip install -U f2 # 更新版本 +$ pip uninstall f2 # 卸载版本 ``` ```sh [Linux] -$ pip3 install f2 # 最新版本 -$ pip3 install f2==x.x.x # 指定版本 -$ pip3 install 'f2>=x.x.x' # 最小版本 +$ pip3 install f2 # 最新版本 +$ pip3 install f2==x.x.x.x # 指定版本 +$ pip3 install -U f2 # 更新版本 +$ pip3 uninstall f2 # 卸载版本 ``` ```sh [MacOS] -$ pip3 install f2 # 最新版本 -$ pip3 install f2==x.x.x # 指定版本 -$ pip3 install 'f2>=x.x.x' # 最小版本 +$ pip3 install f2 # 最新版本 +$ pip3 install f2==x.x.x.x # 指定版本 +$ pip3 install -U f2 # 更新版本 +$ pip3 uninstall f2 # 卸载版本 ``` ::: ::: details 收到依赖或其他警告? -如果提示python或pip版本错误,请尝试更新到必备条件的版本。 +如果提示python或pip版本错误,请务必更新到必备条件的版本。 如果你的网络环境缓慢,无法正常访问官方镜像。请使用可以正常访问的第三方镜像源。 ::: code-group @@ -49,6 +55,31 @@ $ pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple f2 ``` ::: +## 编译安装 + +如果你是开发者需要修改代码编译安装项目,可以使用以下命令: + +::: code-group + +```sh [Windows] +$ git clone https://github.com/Johnserf-Seed/f2.git +$ cd f2 +$ pip install -e . #注意点前面有一个空格 +``` + +```sh [Linux] +$ git clone https://github.com/Johnserf-Seed/f2.git +$ cd f2 +$ pip3 install -e . #注意点前面有一个空格 +``` + +```sh [MacOS] +$ git clone https://github.com/Johnserf-Seed/f2.git +$ cd f2 +$ pip3 install -e . #注意点前面有一个空格 +``` +::: + ::: tip 提示 `F2` 是一个异步库,开发者在调用方法前请仔细`阅读相关文档`。 diff --git a/docs/question-answer/qa.md b/docs/question-answer/qa.md index 3eaa1992..5cbbddb6 100644 --- a/docs/question-answer/qa.md +++ b/docs/question-answer/qa.md @@ -14,4 +14,8 @@ ## f2: command not found -<<< @/snippets/QA.md#f2-command-not-found \ No newline at end of file +<<< @/snippets/QA.md#f2-command-not-found + +## WARNING 没有找到符合条件的作品 + +<<< @/snippets/QA.md#no-matching-videos-found diff --git a/docs/quick-start.md b/docs/quick-start.md index 2027ecfb..7d04ce5f 100644 --- a/docs/quick-start.md +++ b/docs/quick-start.md @@ -7,7 +7,7 @@ ## 启动和运行 -`F2` 设计的初衷是方便用户与开发者一键采集多平台的`异步`库。支持 CLI 命令调用与接口调用。 +`F2` 是一个灵活的`异步`下载库。`F2` 设计的初衷是方便用户与开发者一键采集多平台的`异步`库。支持 CLI 命令调用与接口调用。 ![cli-start](/f2-help.png) diff --git a/docs/site-config.md b/docs/site-config.md index 0b2dacc3..9e2dc53f 100644 --- a/docs/site-config.md +++ b/docs/site-config.md @@ -6,19 +6,28 @@ ## 主配置文件 -`F2` 是一个灵活的异步下载库。你可以使用默认的配置文件,同时也能指定个性化的配置文件。 - -`F2` 默认的配置文件(`f2/conf/app.yaml`)是一个yaml文件。它非常重要,用来保存各个app基础的配置。 +`F2`配置文件由三部分组成,`应用低频配置文件(app.yaml)`,`F2配置文件(conf.yaml)`,`应用默认配置文件(defaults.yaml)`。 ::: info 什么是yaml? -用类似大纲的缩进方式呈现数据序列化的格式文件,[yaml](https://zh.wikipedia.org/wiki/YAML)。 +用类似大纲的缩进方式呈现数据序列化的格式文件,[what is yaml?](https://zh.wikipedia.org/wiki/YAML)。 ::: +**应用低频配置文件(app.yaml)**:用来保存所有应用不常变动的配置,例如的`cookie`、`文件名模板`、`下载路径`、`连接超时时间`、`超时重试次数`等。 + +**F2配置文件(conf.yaml)**:用来保存`F2`的配置,例如不同应用的`计算参数`和`代理`。 + +**应用默认配置文件(defaults.yaml)**:用来保存各个app的初始化默认配置模板,**_请不要修改与使用它_**。 ::: code-group <<< @../../f2/conf/app.yaml +<<< @../../f2/conf/conf.yaml +<<< @../../f2/conf/defaults.yaml ::: -F2 配置文件独立于 CLI 命令参数且具有`最低优先`。这意味只需要一个主配置存`cookie`再用 CLI 命令或者用户的自定义配置即可下载不同的用户作品。 + +高低频参数分离意味着当创建的自定义配置文件比较多的情况下无需修改每一个自定义配置文件中的`cookie`,只需要修改**应用低频配置文件(app.yaml)** 中的`cookie`即可。 + +将高频修改的参数`主页链接`、`下载模式`等,设置在你的自定义配置中,即可灵活调用下载不同用户的不同类型作品。 + - 如何初始化配置文件?请查阅[初始化配置文件](#初始化配置文件)。 @@ -36,23 +45,25 @@ F2 配置文件独立于 CLI 命令参数且具有`最低优先`。这意味只 $ f2 -h ``` -F2 安装完成后,运行不同应用的启动初始化配置文件命令: +`F2` 安装完成后,第一步就是运行应用的初始化配置文件命令: ::: code-group ```sh [Windows] -$ f2 apps --init-config apps.yaml +$ f2 apps --init-config my_apps.yaml ``` ```sh [Linux] -$ f2 apps --init-config apps.yaml +$ f2 apps --init-config my_apps.yaml ``` ```sh [MacOS] -$ f2 apps --init-config apps.yaml +$ f2 apps --init-config my_apps.yaml ``` ::: +`my_apps.yaml`就是该应用的自定义配置文件。 + 迎接你的将是几个简单的问题: @@ -76,71 +87,20 @@ $ f2 douyin --init-config dy.yaml 请查阅[配置文件的位置](#配置文件的位置)。 ::: - -## 配置cookie - -通过简单的配置,用户与开发者就可以立马上手 `F2`。只需通过 `--update-config` 命令就可以保存`cookie`到主配置文件或者使用`--auto-cookie`命令自动从浏览器获取并填写。 - -::: code-group - -```sh [--update-config] -$ f2 dy -k "从浏览器中复制的cookie" -c conf/app.yaml --update-config -``` - -```sh [--auto-cookie] -$ f2 dy -c conf/app.yaml --auto-cookie edge -``` -::: - -当然不想出错就手动复制浏览器中的`cookie`,然后使用`--update-config` 命令保存到主配置文件中。手动复制的操作百度一下就可以了。 - -::: warning 重要 -- 更新配置文件的同时将会在同目录里备份原配置文件,备份文件名为`*.yaml.bak`,方便出错回滚。 -- 不一定非要保存到主配置文件中,你也可以保存到自定义的配置文件中。随你的使用习惯,小白请按照文档的说明来操作。 -- `--update-config` 命令与`--auto-cookie`命令会覆盖主配置文件中的`cookie`,请谨慎使用。 -- `--update-config` 命令需要指定`-c`参数,否则会报错。 -::: - - -## 配置文件的位置 - -你可以可以在`x:\xxxxxxx\Python\Lib\site-packages\f2\conf\app.yaml`中找到它。 - -::: tip 提示 -如果找不到配置文件可以在终端输入 - -::: code-group -```sh [Windows] -$ pip show f2 -``` - -```sh [Linux] -$ pip3 show f2 -``` - -```sh [MacOS] -$ pip3 show f2 -``` -然后查看Location,并在该目录下找到配置文件。 -::: - - ## 自定义配置文件 -由于 F2 采用 app 插件分离式设计,这意味着你可以为相同的 app 配置不同模式的配置文件。 - -一头雾水🎃? 接着看。 +由于 `F2` 的配置文件采用高低频参数分离式设计,这意味着你可以为`相同的应用`设置`不同的配置文件`。你可以只设置一个参数在自定义配置文件中,也可以设置你需要高频修改的参数。 -### 多用户配置 +### 多用户灵活配置 -举个例子,我关注了3个用户其中有A的主页跳舞作品、B的喜欢页作品、C的直播。以往的`TikTokDownload`项目设计冗余,一次性实现起来较复杂。 +举个例子,我关注了3个用户。其中有A的主页作品、B的喜欢页作品、C的直播。那么我可以为每个用户配置一个专属的配置文件。 -在 F2 中,先把主配置文件中`cookie`与其他你需要设置的命令配置好。再在其他目录下建立A、B、C用户的专属配置文件,只需配置不同你所需的的下载模式。 +在 `F2` 中,先把**应用低频配置文件(app.yaml)** 中`cookie`与其他你需要设置的参数配置好。再在其他目录下建立A、B、C用户的专属配置文件,只需配置上低频中没有设置的参数。如下面2个`高频参数`所示,为不同用户所需的下载模式。 ::: code-group -```yaml [用户A] +```yaml [用户A主页作品] douyin: # 浩子 url: https://www.douyin.com/user/MS4wLjABAAAAu8qwDm1-muGuMhZZ-tVzyPVWlUxIbQRNJN_9k83OhWU?vid=7263127189829307659 @@ -148,7 +108,7 @@ douyin: mode: post ``` -```yaml [用户B] +```yaml [用户B喜欢页作品] douyin: # 小布丁 url: https://www.douyin.com/user/MS4wLjABAAAA35iXl5qqCbLKY99pUvxkXzvpSXi8jgUbJ0zR4EuTpcHcS8PHaEb6G9yB6iKR0dNl?vid=7240082457372937511 @@ -156,7 +116,7 @@ douyin: mode: like ``` -```yaml [用户C] +```yaml [用户C直播] douyin: # 醒子8ke url: https://live.douyin.com/775841227732 @@ -166,130 +126,85 @@ douyin: ::: ::: tip 说明 -只是举例,实际上用户B的喜欢页没有开放,用户C也不一定直播,一切根据你的喜好来设置。 +只是举例,实际上用户B的喜欢页没有开放,用户C也不一定直播,一切根据你的喜好来设置,do ever what you want。 ::: -随后你便可以开启终端,并输入不同的配置文件路径即可一键下载。 +随后你便可以开启终端,并直接输入自定义配置文件路径即可一键下载,剩下的低频参数会自动合并,无需担心。 ::: code-group ```bash [用户A] -$ f2 -d dy -c C:\Users\JohnserfSeed\Desktop\A.yaml +$ f2 -d dy -c X:\A.yaml ``` ```bash [用户B] -$ f2 -d dy -c C:\Users\JohnserfSeed\Desktop\B.yaml +$ f2 -d dy -c X:\B.yaml ``` ```bash [用户C] -$ f2 -d dy -c C:\Users\JohnserfSeed\Desktop\C.yaml +$ f2 -d dy -c X:\C.yaml ``` ::: 是不是非常方便且容易管理🤭,你可以随时添加喜欢的用户配置文件并设置你所需的下载模式。 -### CLI临时配置 - -CLI 参数命令优先级最高,所以在不修改配置文件的情况下就可以使用 CLI 参数更改为下载「抖音」用户`喜欢`的所有作品。因此也可以在 CLI 中临时下载A的直播,B的作品与C的喜欢。 - -::: code-group - -```bash [用户A] -$ f2 -d dy -c C:\Users\JohnserfSeed\Desktop\A.yaml -M live -u https://live.douyin.com/xxxxxxxxx -``` - -```bash [用户B] -$ f2 -d dy -c C:\Users\JohnserfSeed\Desktop\B.yaml -M post -``` - -```bash [用户C] -$ f2 -d dy -c C:\Users\JohnserfSeed\Desktop\C.yaml -M like -``` -::: - -赶快试试吧! - -::: tip 说明 -之后的版本会简化操作。不需要再指定该用户的直播间就可以切换下载该用户直播的模式。 -更多的 CLI 命令请查阅 [CLI 参考](/cli)。 +::: warning 配置优先级 +- `CLI`参数优先级最高,`自定义配置文件`优先级次之,`应用低频配置文件(app.yaml)`优先级最低。 +- `CLI` > `自定义配置文件` > `应用低频配置文件(app.yaml)`。 +- 高频参数会覆盖低频参数,未设置的参数不会被覆盖。 +- 要想了解更多的`CLI`参数,请查阅[CLI 参考](/cli)。 ::: -::: warning 重要 -- 命名方式也不受限制,你可以设置`dy-A.yaml`、`dy-B.yaml`、`tk-A.yaml`、`tk-B.ymal`用以区分不同app的用户配置。 -- 配置的操作是通用的,举例用的是douyin的配置文件,tiktok与其他 F2 应用的配置文件的操作是一模一样的。 -::: - - -## 拓展 - -如果不想设置很多配置文件,那就使用主配置。 +## 配置cookie -下载「抖音」用户`发布`的所有作品,只需要在主配置文件中设置`mode: post`即可。 +通过简单的配置,用户与开发者就可以立马上手 `F2`。只需通过 `--update-config` 命令就可以保存`cookie`到主配置文件或者使用`--auto-cookie`命令自动从浏览器获取。 ::: code-group -```sh [Windows] -$ f2 dy -c f2/conf/app.yaml -``` - -```sh [Linux] -$ f2 dy -c f2/conf/app.yaml +```sh [--update-config] +$ f2 dy -k "从浏览器中复制的cookie" -c app.yaml --update-config ``` -```sh [MacOS] -$ f2 dy -c f2/conf/app.yaml +```sh [--auto-cookie] +$ f2 dy -c app.yaml --auto-cookie edge ``` ::: -下载「抖音」用户`喜欢`的所有作品,CLI 中设置`mode: like`即可。 +当然不想出错就手动复制浏览器中的`cookie`,然后使用`--update-config` 命令保存到主配置文件中。手动复制的操作百度一下就可以了。 -::: code-group +::: warning 重要 +- 更新配置文件的同时将会在同目录里备份原配置文件,备份文件名为`*.yaml.bak`,方便回滚。 +- 如果`--auto-cookie`不指定`-c`参数,将直接保存至**低频配置文件(app.yaml)** 中。 +- `cookie`也可以保存到自定义的配置文件中。随你的使用习惯,小白请严格按照文档的说明来操作。 +- `--update-config` 命令与`--auto-cookie`命令会覆盖主配置文件中的`cookie`,请谨慎使用。 +- `--update-config` 命令需要指定`-c`参数,否则会报错。 +::: -```sh [Windows] -$ f2 dy -M like -c f2/conf/app.yaml -``` -```sh [Linux] -$ f2 dy -M like -c f2/conf/app.yaml -``` +## 配置文件的位置 -```sh [MacOS] -$ f2 dy -M like -c f2/conf/app.yaml -``` -::: +你可以在`x:\xxxxxxx\Python\Lib\site-packages\f2\conf\`文件夹中找到它们。 -下载「抖音」用户`单个`的作品: +::: tip 提示 +如果找不到配置文件夹路径可以在终端输入 ::: code-group - ```sh [Windows] -$ f2 dy -M one -u https://v.douyin.com/iRNBho6u/ -c conf/app.yaml +$ pip show f2 ``` ```sh [Linux] -$ f2 dy -M one -u https://v.douyin.com/iRNBho6u/ -c conf/app.yaml +$ pip3 show f2 ``` ```sh [MacOS] -$ f2 dy -M one -u https://v.douyin.com/iRNBho6u/ -c conf/app.yaml +$ pip3 show f2 ``` +然后查看Location,并在该目录下找到配置文件。 ::: -F2 会智能的识别出混乱文本中的链接,同时也支持长短链的输入。 -::: details 支持的链接格式 -<<< @/snippets/douyin/support-link.md -::: - -::: tip 需要注意的是 -在CLI模式下,带有其他信息的文本需要用英文引号将其完整包裹: - -```sh [Windows] -$ f2 dy -M one -u '7.64 gOX:/ w@f.oD 05/14 世界这本书 又多读了一页。冰岛????旅行记# 冰岛 https://v.douyin.com/iR2syBRn/ 复制此链接,打开Dou音搜索,直接观看视! -' -c conf/app.yaml -``` -::: ## 下一步是什么? diff --git a/docs/snippets/QA.md b/docs/snippets/QA.md index 7ac04e0c..1a0b383c 100644 --- a/docs/snippets/QA.md +++ b/docs/snippets/QA.md @@ -34,3 +34,18 @@ https://datatracker.ietf.org/doc/html/rfc6585#section-7.2 1. 编辑`~/.bashrc`文件,添加`export PATH="$PATH:/home/YOUR_NAME/.local/bin"`。 2. 运行`source ~/.bashrc`命令使环境变量生效。 // #endregion f2-command-not-found + + +// #region no-matching-videos-found +如果出现`WARNING 没有找到符合条件的作品`,请检查你是否配置了`interval`参数,该参数是用来设置作品发布时间的筛选条件。 + +解决办法: +1. 检查你的配置文件中是否有`interval`参数。如果没有,请添加为`interval: all`。 +2. 如果你的配置文件中有`interval`参数,请检查你的`interval`参数是否设置正确。 +3. `cli`命令中的`-i`参数也是用来设置作品发布时间的筛选条件 你可以设置为`-i all`。 +4. 如果你使用了`-i`参数,请检查你的`-i`参数是否设置正确。 + +可参考的issue: +https://github.com/Johnserf-Seed/f2/issues/42 +https://github.com/Johnserf-Seed/TikTokDownload/issues/660 +// #endregion no-matching-videos-found diff --git a/docs/snippets/set-debug.py b/docs/snippets/set-debug.py index 0a602a5a..40c54588 100644 --- a/docs/snippets/set-debug.py +++ b/docs/snippets/set-debug.py @@ -1,3 +1,11 @@ +// #region set-config-snippet +import f2 + +f2.APP_CONFIG_FILE_PATH = "app.yaml" + +// #endregion set-config-snippet + + // #region set-debug-snippet import asyncio from f2.apps.douyin.handler import DouyinHandler