适用于多个平台的高速下载器
[简体中文 readme](https://github.com/Johnserf-Seed/f2/blob/main/README.md) • [English readme](https://github.com/Johnserf-Seed/f2/blob/main/README.en.md) `F2` 是一个 [Python](https://pypi.org/project/f2/) 库,提供多平台的作品下载与接口数据处理。支持 `DouYin`、`TikTok`、`Twitter`、`WeiBo` 等平台,且方便适配更多平台。 ## 快速入门 ### ⚙️ 安装 - [必备条件](https://f2.wiki/install#%E5%BF%85%E5%A4%87%E6%9D%A1%E4%BB%B6) - [包管理器安装](https://f2.wiki/install#%E5%8C%85%E7%AE%A1%E7%90%86%E5%99%A8%E5%AE%89%E8%A3%85) - [编译安装](https://f2.wiki/install#%E7%BC%96%E8%AF%91%E5%AE%89%E8%A3%85) ### ⚡ 快速使用 - [启动和运行](https://f2.wiki/quick-start#%E5%90%AF%E5%8A%A8%E5%92%8C%E8%BF%90%E8%A1%8C) - [下一步是什么?](https://f2.wiki/quick-start#%E4%B8%8B%E4%B8%80%E6%AD%A5%E6%98%AF%E4%BB%80%E4%B9%88) ### 配置文件 - [主配置文件](https://f2.wiki/site-config#%E4%B8%BB%E9%85%8D%E7%BD%AE%E6%96%87%E4%BB%B6) - [初始化配置文件](https://f2.wiki/site-config#%E5%88%9D%E5%A7%8B%E5%8C%96%E9%85%8D%E7%BD%AE%E6%96%87%E4%BB%B6) - [自定义配置文件](https://f2.wiki/site-config#%E8%87%AA%E5%AE%9A%E4%B9%89%E9%85%8D%E7%BD%AE%E6%96%87%E4%BB%B6) - [配置Cookie](https://f2.wiki/site-config#%E9%85%8D%E7%BD%AECookie) - [配置文件的位置](https://f2.wiki/site-config#%E9%85%8D%E7%BD%AE%E6%96%87%E4%BB%B6%E7%9A%84%E4%BD%8D%E7%BD%AE) - [下一步是什么?](https://f2.wiki/site-config#%E4%B8%8B%E4%B8%80%E6%AD%A5%E6%98%AF%E4%BB%80%E4%B9%88) ### 命令行 - [CLI临时配置](https://f2.wiki/cli#cli%E4%B8%B4%E6%97%B6%E9%85%8D%E7%BD%AE) - [拓展](https://f2.wiki/cli#%E6%8B%93%E5%B1%95) - [应用命令行](https://f2.wiki/cli#%E5%BA%94%E7%94%A8%E5%91%BD%E4%BB%A4%E8%A1%8C) ### 进阶用法 - [DouYin 批量采集直播流](https://f2.wiki/advance-guide#%E6%89%B9%E9%87%8F%E9%87%87%E9%9B%86%E7%9B%B4%E6%92%AD%E6%B5%81) - [DouYin 直播弹幕转发](https://f2.wiki/advance-guide#%E7%9B%B4%E6%92%AD%E5%BC%B9%E5%B9%95%E8%BD%AC%E5%8F%91) - 文档还在进一步更新中... ## FAQ - [常见问题](https://f2.wiki/faq) ## 团队 - [团队介绍](https://f2.wiki/team) ### 开发指南 - [开发者必看](https://f2.wiki/guide/what-is-f2) ### API示例 - [使用示例](https://f2.wiki/guide/api-examples) ### 开发者接口 - [Bark](https://f2.wiki/guide/apps/bark/) - [DouYin](https://f2.wiki/guide/apps/douyin/) - [TikTok](https://f2.wiki/guide/apps/tiktok/) - [Twitter](https://f2.wiki/guide/apps/twitter/) - [WeiBo](https://f2.wiki/guide/apps/weibo/) ### ️ 命令行指引 - [Bark](https://f2.wiki/guide/apps/bark/cli) - [DouYin](https://f2.wiki/guide/apps/douyin/cli) - [TikTok](https://f2.wiki/guide/apps/tiktok/cli) - [Twitter](https://f2.wiki/guide/apps/twitter/cli) - [WeiBo](https://f2.wiki/guide/apps/weibo/cli) ## ✨ 新变化 当下载或升级到 `F2` 的不同版本时,请注意以下关键的版本更新。 ️ v0.0.1.7-pw2 - **新增 Bark 应用支持** 请前往 App Store 下载 [Bark](https://apps.apple.com/cn/app/id1403753865),并在 [F2 配置文件](https://f2.wiki/site-config#%E4%B8%BB%E9%85%8D%E7%BD%AE%E6%96%87%E4%BB%B6) 中完成相关配置。 - ️ **开放 `ab` 算法** 已开源满血版 `ab` 算法,支持自定义 `UA`。请确保自定义 `UA` 符合规范。 - **新增直播弹幕转发功能** 支持 `douyin` 与 `tiktok` 直播弹幕转发,请根据 [WSS 配置指南](https://f2.wiki/guide/what-is-f2#wss%E9%85%8D%E7%BD%AE) 完成相应参数配置。 - **启用通知推送** 如需启用应用通知推送,请在 [F2 配置文件](https://f2.wiki/site-config#%E4%B8%BB%E9%85%8D%E7%BD%AE%E6%96%87%E4%BB%B6) 中设置 `enable_bark` 参数为 `true`。 - **更多变更详情** 请查看完整的 [ChangeLog](https://github.com/Johnserf-Seed/f2/blob/main/CHANGELOG.md#0017---2024-12-31)。 v0.0.1.6-pw2 - ️ **配置文件格式已更新** 如果你使用旧版配置文件,请注意进行迁移。 - **时区标准化** 所有时间戳的默认时区已设置为 `UTC/GMT+08:00`。 - **文件格式调整** - `douyin` 直播流文件名调整为 `flv`。 - 图集格式调整回 `webp`。 - **错误修复** 修复了 `tiktok` 视频地址 `403` 错误。 [了解更多解决方案](https://f2.wiki/faq#tiktok-403-forbidden) - ️ **算法优化** `douyin` 现在默认使用 `ab` 算法进行请求。(满血版 `ab` 算法即将开源) - **更多变更详情** [查看 ChangeLog](https://github.com/Johnserf-Seed/f2/blob/main/CHANGELOG.md#0016---2024-05-04) v0.0.1.5-pw2 - ️ **自定义 UA 支持** `XBogus` 参数现在支持自定义 `UA`,请确保 `UA` 符合规范。 - **数据库重建** 重建后的数据库包含接口的原始数据。 如需保留旧记录,请注意迁移或备份。 - **返回类型统一** 所有 `fetch` 方法的返回类型已统一为过滤器类型,请注意相关变化。 - ️ **新功能** 添加了 `_to_raw` 方法,可将过滤器转换为原始接口数据。 - **文件名模板更新** 如果文件名不符合新规范,将抛出异常,请检查并调整。 - **链接解析修复** 修复了 `douyin` 合集页链接无法解析的问题。 [了解更多](#抖音合集作品) - **更多变更详情** [查看 ChangeLog](https://github.com/Johnserf-Seed/f2/blob/main/CHANGELOG.md#0015---2024-04-04) ## 文档 `F2` 的目标是提供一个简单易用的接口,让用户可以快速获取作品数据。 在 `preview` 版本中很多功能没有完善,如果你发现了问题,请在 `F2` 项目中提交 `issue`。 [项目文档](https://f2.wiki/) 还在完善中,存在滞后的情况,请保持关注。 ## ️ Todo - 将在 `0.0.1.8` 版本中添加 `BiliBili` & `NetEaseMusic` 支持。 - 将在 `0.0.1.8` 版本中维护更多的 `API` 与 `CLI` 功能。 - 优化 `F2` 的 `CLI` 体验。 - 添加 `Socket` 代理支持。 - 添加 `Cookie` 池,`Proxy` 池,`User-Agent` 池等支持。 - 添加 `F2` 的 `WebAPI` 版本。 - [更多计划](https://github.com/Johnserf-Seed/f2/discussions/203) ## 更新 [ChangeLog](https://github.com/Johnserf-Seed/f2/blob/main/CHANGELOG.md) ## 应用&功能 功能状态:代表已经实现,代表正在实现,代表暂时不实现,代表未来实现,代表将会弃用。 账号状态:⚪代表未知,代表需要登录(无视自己账号隐私设置),⚫代表不需要登录(游客状态能看到的)。 完整的功能列表请查看 [API文档](https://f2.wiki/guide/api-examples)。 Bark |功能|账号状态|接口|功能状态| |---|---|---|---| |发送通知(GET)|⚪|`fetch_bark_notification`|| |发送通知(POST)|⚪|`post_bark_notification`|| |发送加密通知|⚪|`cipher_bark_notification`|| |工具类|类名|接口|功能状态| |---|---|---|---| | 管理客户端配置 | `ClientConfManager` | - | | | 生成随机数字字节 | - | `generate_numeric_bytes` | | DouYin - 表示需要登录才可以下载仅自己可见的作品、收藏作品、收藏夹作品或点赞作品等。(登录后无视自己的私密设置、可获取个性化内容) - ⚫ 表示不需要登录下载公开的作品、收藏夹作品、点赞作品等。(仅下载他人公开可见作品与页面) |功能|账号状态|接口|功能状态| |---|---|---|---| |用户信息|⚫|`fetch_user_profile`|| |单个作品(视频、图集、日常)|⚫|`fetch_one_video`|| |live图集|⚫|`fetch_one_video`|| |主页作品|⚫|`fetch_user_post_videos`|| |点赞作品|⚫|`fetch_user_like_videos`|| |收藏夹作品|⚫|`fetch_user_collects_videos`|| |收藏作品||`fetch_user_collection_videos`|| |收藏原声||`fetch_user_music_collection`|| |收藏合集||`fetch_user_mix_collection`|| |收藏短剧||`fetch_user_series_collection`|| |合集作品|⚫|`fetch_user_mix_videos`|| |首页推荐作品|⚫|`fetch_user_feed_videos`|| |相似推荐作品|⚫|`fetch_related_videos`|| |直播间信息(流下载)|⚫|`fetch_user_live_videos`、`fetch_user_live_videos_by_room_id`|| |直播间弹幕负载|⚫|`fetch_live_im`|| |直播间弹幕|⚫|`fetch_live_danmaku`|| |查询用户基本信息|⚫|`fetch_query_user`|| |关注用户开播|⚫|`fetch_user_following_lives`|| |关注用户信息|⚫|`fetch_user_following`|| |粉丝用户信息|⚫|`fetch_user_follower`|| |关注用户作品|⚫|`fetch_user_following_videos`|| |粉丝用户作品|⚫|`fetch_user_follower_videos`|| |朋友作品||`fetch_friend_feed_videos`|| |增加播放量|⚫|`fetch_post_stats`|| |搜索视频|⚫|`fetch_search_videos`|| |搜索用户|⚫|`fetch_search_users`|| |搜索直播|⚫|`fetch_search_lives`|| |猜你想搜(相关搜索)|⚫|`fetch_search_suggest`|| |抖音热点|⚫|`fetch_hot_search`|| |作品评论|⚫|`fetch_video_comments`|| |观看历史||`fetch_user_history_read`|| |稍后再看||`fetch_user_watch_later`|| |...|...|...|...| |工具类|类名|接口|功能状态| |---|---|---|---| | 管理客户端配置 | `ClientConfManager` | | | | 生成真实msToken | `TokenManager` | `gen_real_msToken` | | | 生成虚假msToken | `TokenManager` | `gen_false_msToken` | | | 生成ttwid | `TokenManager` | `gen_ttwid` | | | 生成webid | `TokenManager` | `gen_webid` | | | 生成verify_fp | `VerifyFpManager` | `gen_verify_fp` | | | 生成s_v_web_id | `VerifyFpManager` | `gen_s_v_web_id` | | | 生成直播signature | `DouyinWebcastSignature` | `get_signature` | | | 使用接口地址生成Xb参数 | `XBogusManager` | `str_2_endpoint` | | | 使用接口模型生成Xb参数 | `XBogusManager` | `model_2_endpoint` | | | 使用接口地址生成Ab参数 | `ABogusManager` | `str_2_endpoint` | | | 使用接口模型生成Ab参数 | `ABogusManager` | `model_2_endpoint` | | | 提取单个用户id | `SecUserIdFetcher` | `get_sec_user_id` | | | 提取列表用户id | `SecUserIdFetcher` | `get_all_sec_user_id` | | | 提取单个作品id | `AwemeIdFetcher` | `get_aweme_id` | | | 提取列表作品id | `AwemeIdFetcher` | `get_all_aweme_id` | | | 提取单个合集id | `MixIdFetcher` | `get_mix_id` | | | 提取列表合集id | `MixIdFetcher` | `get_all_mix_id` | | | 提取单个直播间号 | `WebCastIdFetcher` | `get_webcast_id` | | | 提取列表直播间号 | `WebCastIdFetcher` | `get_all_webcast_id` | | | 全局格式化文件名 | - | `format_file_name` | | | 创建用户目录 | - | `create_user_folder` | | | 重命名用户目录 | - | `rename_user_folder` | | | 创建或重命名用户目录 | - | `create_or_rename_user_folder` | | | json歌词转lrc歌词 | - | `json_2_lrc` | | TikTok - 表示需要登录才可以下载仅自己可见的作品、收藏作品、收藏夹作品或点赞作品等。(登录后无视自己的私密设置、可获取个性化内容) - ⚫ 表示不需要登录下载公开的作品、收藏夹作品、点赞作品等。(仅下载他人公开可见作品与页面) |功能|账号状态|接口|功能状态| |---|---|---|---| |用户信息|⚫|`fetch_user_profile`|| |单个作品|⚫|`fetch_one_video`|| |主页作品|⚫|`fetch_user_post_videos`|| |点赞作品|⚫|`fetch_user_like_videos`|| |收藏作品|⚫|`fetch_user_collect_videos`|| |播放列表|⚫|`fetch_play_list`|| |播放列表作品|⚫|`fetch_user_mix_videos`|| |作品搜索|⚫|`fetch_search_videos`|| |直播间信息(流下载)|⚫|`fetch_user_live_videos`|| |直播间弹幕负载|⚫|`fetch_live_im`|| |直播间弹幕|⚫|`fetch_live_danmaku`|| |检查开播|⚫|`fetch_check_live_alive`|| |...|...|...|...| |工具类|类名|接口|功能状态| |---|---|---|---| | 管理客户端配置 | `ClientConfManager` | | | | 生成真实msToken | `TokenManager` | `gen_real_msToken` | | | 生成虚假msToken | `TokenManager` | `gen_false_msToken` | | | 生成ttwid | `TokenManager` | `gen_ttwid` | | | 生成odin_tt | `TokenManager` | `gen_odin_tt` | | | 使用接口地址生成Xb参数 | `XBogusManager` | `str_2_endpoint` | | | 使用接口模型生成Xb参数 | `XBogusManager` | `model_2_endpoint` | | | 提取单个用户id | `SecUserIdFetcher` | `get_secuid` | | | 提取列表用户id | `SecUserIdFetcher` | `get_all_secuid` | | | 提取单个用户唯一id | `SecUserIdFetcher` | `get_uniqueid` | | | 提取列表用户唯一id | `SecUserIdFetcher` | `get_all_uniqueid` | | | 提取列表用户id | `SecUserIdFetcher` | `get_all_secUid` | | | 提取单个作品id | `AwemeIdFetcher` | `get_aweme_id` | | | 提取列表作品id | `AwemeIdFetcher` | `get_all_aweme_id` | | | 生成deviceId | `DeviceIdManager` | `gen_device_id` | | | 生成devideId列表 | `DeviceIdManager` | `gen_device_ids` | | | 全局格式化文件名 | - | `format_file_name` | | | 创建用户目录 | - | `create_user_folder` | | | 重命名用户目录 | - | `rename_user_folder` | | | 创建或重命名用户目录 | - | `create_or_rename_user_folder` | | Twitter |功能|账号状态|接口|功能状态| |---|---|---|---| |推文详情|⚫|`fetch_tweet_detail`|| |用户信息|⚫|`fetch_user_profile`|| |主页推文|⚫|`fetch_post_tweet`|| |喜欢推文||`fetch_like_tweet`|| |收藏推文||`fetch_bookmark_tweet`|| |工具类|类名|接口|功能状态| |---|---|---|---| | 管理客户端配置 | `ClientConfManager` | | | | 提取用户唯一ID | `UniqueIdFetcher` | `get_unique_id` | | | 提取列表用户唯一ID | `UniqueIdFetcher` | `get_all_unique_ids` | | | 提取推文ID | `TweetIdFetcher` | `get_tweet_id` | | | 提取列表推文ID | `TweetIdFetcher` | `get_all_tweet_ids` |
暂无开放 Issues,或尚未同步最近议题。