Skip to content

Latest commit

 

History

History
1092 lines (946 loc) · 39.6 KB

README.en.md

File metadata and controls

1092 lines (946 loc) · 39.6 KB

Logo

Downloads PyPI version Dev Branch Discord codecov TikHub APACHE-2.0

🇨🇳 简体中文 readme🇬🇧 English readme

F2 is a Python library that provides multi-platform content downloading and API data processing. It supports platforms like DouYinTikTokTwitterWeiBo, and is easily adaptable to more platforms.

🚀 Quick Start

⚙️ Installation

⚡ Quick Use

📋 Configuration File

💻 Command Line

📚 Advanced Usage

🧐 FAQ

👏 Team

📘 Developer Guide

📝 API Examples

🧩 Calling Examples

🖥️ Command Line Guide

✨ New Changes

When downloading or upgrading to a different version of F2, please note the following critical version updates.

🛠️ v0.0.1.7-pw2
  • 🚀 New Bark App Support Please go to the App Store to download Bark, and complete the relevant configuration in the F2 configuration file.
  • 🛡️ Open ab Algorithm The full version of the open-source ab algorithm is now available, supporting custom UA. Please ensure the custom UA conforms to the standard.
  • 📡 New Live Stream Bullet Screen Forwarding Feature Supports douyin and tiktok live stream bullet screen forwarding. Please follow the WSS Configuration Guide for parameter setup.
  • 🔔 Enable Notification Push To enable application notifications, set the enable_bark parameter to true in the F2 configuration file.
  • 📄 More Change Details Please see the full ChangeLog.
📌 v0.0.1.6-pw2
  • 🛠️ Configuration File Format Updated If you are using an old configuration file, please pay attention to the migration.
  • 🌍 Time Zone Standardized The default time zone for all timestamps is set to UTC/GMT+08:00.
  • 📁 File Format Adjustments
    • douyin live stream filenames are now adjusted to flv.
    • The gallery format has been reverted to webp.
  • 🔄 Bug Fixes Fixed the tiktok video address 403 error. 👉 Learn more solutions
  • 🛡️ Algorithm Optimization douyin now uses the ab algorithm by default for requests. (The full version of the ab algorithm will be open-sourced soon)
  • 📄 More Change Details 👉 View ChangeLog
📡 v0.0.1.5-pw2
  • 🛡️ Custom UA Support The XBogus parameter now supports custom UA. Please ensure the UA conforms to the standard.
  • 📊 Database Rebuild The rebuilt database contains the raw data from the API. 👉 If you need to keep old records, please pay attention to migration or backup.
  • 🔄 Unified Return Type The return type for all fetch methods has been unified to the filter type. Please pay attention to the changes.
  • 🛠️ New Feature A new _to_raw method has been added to convert filters to raw API data.
  • 📝 Filename Template Update If the filename does not meet the new standard, an exception will be thrown. Please check and adjust accordingly.
  • 🔗 Link Parsing Fix Fixed the issue with douyin collection page links not being parsed. 👉 Learn more
  • 📄 More Change Details 👉 View ChangeLog

📑 Documentation

The goal of F2 is to provide a simple and easy-to-use interface that allows users to quickly retrieve content data. In the preview version, many features are not fully developed. If you encounter any issues, please submit an issue in the F2 project. The project documentation is still being improved and may be delayed. Please stay tuned.

🗓️ Todo

  • Support for BiliBili & NetEaseMusic will be added in version 0.0.1.8.
  • More API and CLI features will be maintained in version 0.0.1.8.
  • Optimized the F2 CLI experience.
  • Added Socket proxy support.
  • Added support for Cookie pool, Proxy pool, User-Agent pool, etc.
  • Added the F2 WebAPI version.
  • More plans

🐛 Updates

ChangeLog

💡 Applications & Features

Feature status: 🟢 Represents implemented, 🟡 Represents being implemented, 🟤 Represents temporarily not implemented, 🔵 Represents future implementation, 🔴 Represents deprecation. Account status: ⚪ Represents unknown, 🟣 Represents login required (ignores own account privacy settings), ⚫ Represents not login required (visible to guests only).

For the complete list of features, please refer to the API Documentation.

📠 Bark
Feature Account Status Interface Feature Status
Send Notification (GET) fetch_bark_notification 🟢
Send Notification (POST) post_bark_notification 🟢
Send Encrypted Notification cipher_bark_notification 🟢
Utility Class Name Interface Feature Status
Manage Client Configuration ClientConfManager - 🟢
Generate Random Numeric Bytes - generate_numeric_bytes 🟢
🎶 DouYin
  • 🟣 Indicates that login is required to download works that are only visible to oneself, favorited works, works in collection folders, or liked works. (After login, ignores own privacy settings and obtains personalized content)
  • ⚫ Indicates that login is not required to download public works, works in collection folders, liked works, etc. (Only downloads works visible to others and pages)
Feature Account Status API Status
User Information 🟣⚫ fetch_user_profile 🟢
Single Video (Video, Album, Daily) 🟣⚫ fetch_one_video 🟢
Live Gallery 🟣⚫ fetch_one_video 🟢
Homepage Videos 🟣⚫ fetch_user_post_videos 🟢
Liked Videos 🟣⚫ fetch_user_like_videos 🟢
Collection Folder Videos 🟣⚫ fetch_user_collects_videos 🟢
Collected Videos 🟣 fetch_user_collection_videos 🟢
Collected Music 🟣 fetch_user_music_collection 🟢
Collected Playlist 🟣 fetch_user_mix_collection 🔵
Collected Series 🟣 fetch_user_series_collection 🟤
Playlist Videos fetch_user_mix_videos 🟢
Recommended Videos 🟣⚫ fetch_user_feed_videos 🟢
Related Videos fetch_related_videos 🟢
Live Room Information (Stream Download) fetch_user_live_videos, fetch_user_live_videos_by_room_id 🟢
Live Room Load fetch_live_im 🟢
Live Room Danmaku fetch_live_danmaku 🟢
Query User Basic Information 🟣⚫ fetch_query_user 🟢
Followed Users Live 🟣⚫ fetch_user_following_lives 🟢
Followed Users Information 🟣⚫ fetch_user_following 🟢
Followers Information 🟣⚫ fetch_user_follower 🟢
Followed Users Videos 🟣⚫ fetch_user_following_videos 🟤
Followers Videos 🟣⚫ fetch_user_follower_videos 🟤
Friends' Videos 🟣 fetch_friend_feed_videos 🟢
Increase Play Count 🟣⚫ fetch_post_stats 🟢
Search Videos fetch_search_videos 🔵
Search Users fetch_search_users 🔵
Search Live fetch_search_lives 🔵
Search Suggestions fetch_search_suggest 🟤
Douyin Hot Search fetch_hot_search 🟤
Video Comments 🟣⚫ fetch_video_comments 🔵
Watch History 🟣 fetch_user_history_read 🟤
Watch Later 🟣 fetch_user_watch_later 🟤
... ... ... ...
Utility Class Name Interface Feature Status
Manage Client Configuration ClientConfManager 🟢
Generate Real msToken TokenManager gen_real_msToken 🟢
Generate Fake msToken TokenManager gen_false_msToken 🟢
Generate ttwid TokenManager gen_ttwid 🟢
Generate webid TokenManager gen_webid 🟢
Generate verify_fp VerifyFpManager gen_verify_fp 🟢
Generate s_v_web_id VerifyFpManager gen_s_v_web_id 🟢
Generate Live Webcast Signature DouyinWebcastSignature get_signature 🟢
Use Interface Model to Generate WSS Signature Parameters WebcastSignatureManager model_2_endpoint 🔴
Use Interface Address to Generate Xb Parameters XBogusManager str_2_endpoint 🟢
Use Interface Model to Generate Xb Parameters XBogusManager model_2_endpoint 🟢
Use Interface Address to Generate Ab Parameters ABogusManager str_2_endpoint 🟢
Use Interface Model to Generate Ab Parameters ABogusManager model_2_endpoint 🟢
Extract Single User ID SecUserIdFetcher get_sec_user_id 🟢
Extract List of User IDs SecUserIdFetcher get_all_sec_user_id 🟢
Extract Single Content ID AwemeIdFetcher get_aweme_id 🟢
Extract List of Content IDs AwemeIdFetcher get_all_aweme_id 🟢
Extract Single Collection ID MixIdFetcher get_mix_id 🟢
Extract List of Collection IDs MixIdFetcher get_all_mix_id 🟢
Extract Single Webcast ID WebCastIdFetcher get_webcast_id 🟢
Extract List of Webcast IDs WebCastIdFetcher get_all_webcast_id 🟢
Global File Name Formatter - format_file_name 🟢
Create User Directory - create_user_folder 🟢
Rename User Directory - rename_user_folder 🟢
Create or Rename User Directory - create_or_rename_user_folder 🟢
Show QR Code - show_qrcode 🔴
Convert JSON Lyrics to LRC Lyrics - json_2_lrc 🟢
🎶 TikTok
  • 🟣 Indicates that login is required to download works that are only visible to oneself, favorited works, works in collection folders, or liked works. (After login, ignores own privacy settings and obtains personalized content)
  • ⚫ Indicates that login is not required to download public works, works in collection folders, liked works, etc. (Only downloads works visible to others and pages)
Feature Account Status Interface Feature Status
User Information 🟣⚫ fetch_user_profile 🟢
Single Work 🟣⚫ fetch_one_video 🟢
Home Page Works 🟣⚫ fetch_user_post_videos 🟢
Liked Works 🟣⚫ fetch_user_like_videos 🟢
Favorite Works 🟣⚫ fetch_user_collect_videos 🟢
Playlist 🟣⚫ fetch_play_list 🟢
Playlist Works 🟣⚫ fetch_user_mix_videos 🟢
Post Search 🟣⚫ fetch_search_videos 🟢
Live Room Information (Stream Download) fetch_user_live_videos 🟢
Live Room Danmaku Load fetch_live_im 🟢
Live Room Danmaku fetch_live_danmaku 🟢
Check If The webcast Is Alive 🟣⚫ fetch_check_live_alive 🟢
... ... ... ...
Utility Class Name Interface Feature Status
Manage Client Configuration ClientConfManager 🟢
Generate Real msToken TokenManager gen_real_msToken 🟢
Generate Fake msToken TokenManager gen_false_msToken 🟢
Generate ttwid TokenManager gen_ttwid 🟢
Generate odin_tt TokenManager gen_odin_tt 🟢
Use Interface Address to Generate Xb Parameters XBogusManager str_2_endpoint 🟢
Use Interface Model to Generate Xb Parameters XBogusManager model_2_endpoint 🟢
Extract Single User ID SecUserIdFetcher get_secuid 🟢
Extract List of User IDs SecUserIdFetcher get_all_secuid 🟢
Extract Single User Unique ID SecUserIdFetcher get_uniqueid 🟢
Extract List of User Unique IDs SecUserIdFetcher get_all_uniqueid 🟢
Extract List of User IDs SecUserIdFetcher get_all_secUid 🟢
Extract Single Content ID AwemeIdFetcher get_aweme_id 🟢
Extract List of Content IDs AwemeIdFetcher get_all_aweme_id 🟢
Generate Device ID DeviceIdManager gen_device_id 🟢
Generate Device ID List DeviceIdManager gen_device_ids 🟢
Global File Name Formatter - format_file_name 🟢
Create User Directory - create_user_folder 🟢
Rename User Directory - rename_user_folder 🟢
Create or Rename User Directory - create_or_rename_user_folder 🟢
🐦 Twitter
Feature Account Status Interface Feature Status
Tweet Detail 🟣⚫ fetch_tweet_detail 🟢
User Profile 🟣⚫ fetch_user_profile 🟢
Home Tweets 🟣⚫ fetch_post_tweet 🟢
Liked Tweets 🟣 fetch_like_tweet 🟢
Bookmarked Tweets 🟣 fetch_bookmark_tweet 🟢
Utility Class Name Interface Feature Status
Manage Client Configuration ClientConfManager 🟢
Extract User Unique ID UniqueIdFetcher get_unique_id 🟢
Extract List of User Unique IDs UniqueIdFetcher get_all_unique_ids 🟢
Extract Tweet ID TweetIdFetcher get_tweet_id 🟢
Extract List of Tweet IDs TweetIdFetcher get_all_tweet_ids 🟢
Global File Name Formatter - format_file_name 🟢
Create User Directory - create_user_folder 🟢
Rename User Directory - rename_user_folder 🟢
Create or Rename User Directory - create_or_rename_user_folder 🟢
Extract Tweet Text - extract_desc 🟢
📱 WeiBo
Feature Account Status Interface Feature Status
User Info 🟣⚫ fetch_user_info 🟢
User Detail 🟣⚫ fetch_user_detail 🟢
Home Weibo 🟣⚫ fetch_user_weibo 🟢
Weibo Detail 🟣⚫ fetch_weibo_detail 🟢
Utility Class Name Interface Feature Status
Manage Client Configuration ClientConfManager 🟢
Generate Visitor Cookie VisitorManager gen_visitor 🟢
Extract Weibo ID WeiboIdFetcher get_weibo_id 🟢
Extract List of Weibo IDs WeiboIdFetcher get_all_weibo_id 🟢
Extract Weibo User ID WeiboUidFetcher get_weibo_uid 🟢
Extract List of Weibo User IDs WeiboUidFetcher get_all_weibo_uid 🟢
Extract Weibo User Nickname WeiboScreenNameFetcher get_weibo_screen_name 🟢
Extract List of Weibo User Nicknames WeiboScreenNameFetcher get_all_weibo_screen_name 🟢
Global File Name Formatter - format_file_name 🟢
Create User Directory - create_user_folder 🟢
Rename User Directory - rename_user_folder 🟢
Create or Rename User Directory - create_or_rename_user_folder 🟢
Extract Weibo Text - extract_desc 🟢

📸 Screenshots

🎬 Bark

Send Notification (GET)

Send Notification (POST)

Send Encrypted Notification

🎬 DouYin

Douyin Single Video

Douyin Home Page Videos

Douyin Liked Videos

Douyin Bookmarked Videos

Douyin Favorites Videos

Douyin Favorite Sounds

Douyin Playlist Videos

Supports parsing any video link in a playlist

Playlist Link Parsing

Douyin Live Recording

Single Live Recording

Batch Live Recording

Douyin Recommendations

Douyin Friend's Videos

Douyin Live Danmaku

-video.mp4

🎬 TikTok

TikTok Single Video

TikTok Home Page Videos

TikTok Liked Videos

TikTok Bookmarked Videos

TikTok Playlist Videos

TikTok Video Search

TikTok Live Danmaku

-video.mp4
ps. Too lazy to record, using Douyin's danmaku, the effect is the same.

🎬 Twitter

x Single Tweet

x Home Page Tweets

x Liked Tweets

x Bookmarked Tweets

🎬 WeiBo

WeiBo Single Weibo

WeiBo Home Page Weibo

📦 Structures

📁 Project Catalogs
.
|___.coverage
|___.github
| |___dependabot.yml
| |___ISSUE_TEMPLATE
| | |___ask-question.md
| | |___bug-report.md
| | |___feature_request.md
| |___workflows
| | |___Codecov.yml
| | |___deploy.yml
| | |___issue_similarity.yml
|___.gitignore
|___.vscode
| |___launch.json
| |___settings.json
|___babel.cfg
|___CHANGELOG.md
|___CNAME
|___CODE_OF_CONDUCT.md
|___CONTRIBUTING.en.md
|___CONTRIBUTING.md
|___CONTRIBUTORS.en.md
|___CONTRIBUTORS.md
|___coverage.xml
|___docs
| |___.vitepress
| | |___config.mts
| | |___theme
| | | |___index.ts
| | | |___Layout.vue
| | | |___styles
| | | | |___vars.css
| |___advance-guide.md
| |___cli.md
| |___en
| | |___advance-guide.md
| | |___api-examples.md
| | |___cli.md
| | |___guide
| | | |___api-examples.md
| | | |___apps
| | | | |___bark
| | | | | |___cli.md
| | | | | |___index.md
| | | | |___douyin
| | | | | |___cli.md
| | | | | |___index.md
| | | | |___f2
| | | | | |___cli.md
| | | | | |___index.md
| | | | |___tiktok
| | | | | |___cli.md
| | | | | |___index.md
| | | | |___twitter
| | | | | |___cli.md
| | | | | |___index.md
| | | | |___weibo
| | | | | |___cli.md
| | | | | |___index.md
| | | |___what-is-f2.md
| | |___index.md
| | |___install.md
| | |___markdown-examples.md
| | |___question-answer
| | | |___qa.md
| | |___quick-start.md
| | |___site-config.md
| | |___snippets
| | | |___bark
| | | | |___ciphertext.sh
| | | | |___client-config.py
| | | | |___generate-bytes.py
| | | | |___notification.py
| | | |___douyin
| | | | |___abogus.py
| | | | |___aweme-id.py
| | | | |___aweme-related.py
| | | | |___client-config.py
| | | | |___format-file-name.py
| | | | |___json-2-lrc.py
| | | | |___mix-id.py
| | | | |___one-video.py
| | | | |___post-stats.py
| | | | |___query-user.py
| | | | |___sec-user-id.py
| | | | |___show-qrcode.py
| | | | |___sso-login.py
| | | | |___support-link.md
| | | | |___token-manager.py
| | | | |___user-collection.py
| | | | |___user-collects.py
| | | | |___user-feed.py
| | | | |___user-folder.py
| | | | |___user-follow-live.py
| | | | |___user-follower.py
| | | | |___user-following.py
| | | | |___user-friend.py
| | | | |___user-get-add.py
| | | | |___user-like.py
| | | | |___user-live-im-fetch.py
| | | | |___user-live-room-id.py
| | | | |___user-live.py
| | | | |___user-mix.py
| | | | |___user-post.py
| | | | |___user-profile.py
| | | | |___video-get-add.py
| | | | |___webcast-id.py
| | | | |___webcast-signature.py
| | | | |___xbogus.py
| | | |___QA.md
| | | |___set-debug.py
| | | |___tiktok
| | | | |___aweme-id.py
| | | | |___check-live-alive.py
| | | | |___client-config.py
| | | | |___device-id.py
| | | | |___format-file-name.py
| | | | |___one-video.py
| | | | |___sec-uid.py
| | | | |___token-manager.py
| | | | |___unique-id.py
| | | | |___user-collect.py
| | | | |___user-folder.py
| | | | |___user-get-add.py
| | | | |___user-like.py
| | | | |___user-live-im-fetch.py
| | | | |___user-mix.py
| | | | |___user-playlist.py
| | | | |___user-post.py
| | | | |___user-profile.py
| | | | |___video-get-add.py
| | | | |___xbogus.py
| | | |___twitter
| | | | |___client-config.py
| | | | |___extract-desc.py
| | | | |___format-file-name.py
| | | | |___one-tweet.py
| | | | |___tweet-ids.py
| | | | |___user-bookmark.py
| | | | |___user-folder.py
| | | | |___user-get-add.py
| | | | |___user-like.py
| | | | |___user-profile.py
| | | | |___user-tweet.py
| | | | |___user-unique-ids.py
| | | |___weibo
| | | | |___client-config.py
| | | | |___extract-desc.py
| | | | |___extract-uid.py
| | | | |___format-file-name.py
| | | | |___one-weibo.py
| | | | |___user-detail.py
| | | | |___user-folder.py
| | | | |___user-get-add.py
| | | | |___user-profile-by-name.py
| | | | |___user-profile.py
| | | | |___user-weibo.py
| | | | |___visitor-cookie.py
| | | | |___weibo-id.py
| | | | |___weibo-screen-name.py
| | | | |___weibo-uid.py
| | |___team.md
| |___faq.md
| |___guide
| | |___api-examples.md
| | |___apps
| | | |___bark
| | | | |___cli.md
| | | | |___index.md
| | | |___douyin
| | | | |___cli.md
| | | | |___index.md
| | | |___f2
| | | | |___cli.md
| | | | |___index.md
| | | |___tiktok
| | | | |___cli.md
| | | | |___index.md
| | | |___twitter
| | | | |___cli.md
| | | | |___index.md
| | | |___weibo
| | | | |___cli.md
| | | | |___index.md
| | |___what-is-f2.md
| |___index.md
| |___install.md
| |___package.json
| |___public
| | |___bark
| | | |___bark-ciphertext-setting.jpg
| | | |___bark-ciphertext.jpg
| | | |___bark-key.jpg
| | | |___bark-token.jpg
| | |___douyin
| | | |___batch-lives.png
| | | |___cli-start-2.png
| | | |___cli-start.png
| | | |___code-start-2.png
| | | |___code-start.png
| | | |___log-2-console.png
| | | |___pytest-ok.png
| | | |___set-debug.png
| | | |___wss-connect.png
| | |___f2-help.png
| | |___f2-logo-with-no-shadow.png
| | |___f2-logo-with-shadow-mini.png
| | |[email protected]
| | |[email protected]
| | |[email protected]
| | |[email protected]
| | |[email protected]
| | |[email protected]
| | |___f2-logo-with-shadow.png
| | |___f2-logo.ico
| |___quick-start.md
| |___site-config.md
| |___snippets
| | |___bark
| | | |___ciphertext.sh
| | | |___client-config.py
| | | |___generate-bytes.py
| | | |___notification.py
| | |___douyin
| | | |___abogus.py
| | | |___aweme-id.py
| | | |___aweme-related.py
| | | |___batch-lives.py
| | | |___client-config.py
| | | |___format-file-name.py
| | | |___json-2-lrc.py
| | | |___mix-id.py
| | | |___one-video.py
| | | |___post-stats.py
| | | |___query-user.py
| | | |___sec-user-id.py
| | | |___show-qrcode.py
| | | |___sso-login.py
| | | |___support-link.md
| | | |___token-manager.py
| | | |___user-collection.py
| | | |___user-collects.py
| | | |___user-feed.py
| | | |___user-folder.py
| | | |___user-follow-live.py
| | | |___user-follower.py
| | | |___user-following.py
| | | |___user-friend.py
| | | |___user-get-add.py
| | | |___user-like.py
| | | |___user-live-im-fetch.py
| | | |___user-live-room-id.py
| | | |___user-live.py
| | | |___user-mix.py
| | | |___user-post.py
| | | |___user-profile.py
| | | |___video-get-add.py
| | | |___webcast-id.py
| | | |___webcast-signature.py
| | | |___xbogus.py
| | |___set-debug.py
| | |___tiktok
| | | |___aweme-id.py
| | | |___check-live-alive.py
| | | |___client-config.py
| | | |___device-id.py
| | | |___format-file-name.py
| | | |___one-video.py
| | | |___sec-uid.py
| | | |___token-manager.py
| | | |___unique-id.py
| | | |___user-collect.py
| | | |___user-folder.py
| | | |___user-get-add.py
| | | |___user-like.py
| | | |___user-live-im-fetch.py
| | | |___user-mix.py
| | | |___user-playlist.py
| | | |___user-post.py
| | | |___user-profile.py
| | | |___video-get-add.py
| | | |___xbogus.py
| | |___twitter
| | | |___client-config.py
| | | |___extract-desc.py
| | | |___format-file-name.py
| | | |___one-tweet.py
| | | |___tweet-ids.py
| | | |___user-bookmark.py
| | | |___user-folder.py
| | | |___user-get-add.py
| | | |___user-like.py
| | | |___user-profile.py
| | | |___user-tweet.py
| | | |___user-unique-ids.py
| | |___weibo
| | | |___client-config.py
| | | |___extract-desc.py
| | | |___extract-uid.py
| | | |___format-file-name.py
| | | |___one-weibo.py
| | | |___user-detail.py
| | | |___user-folder.py
| | | |___user-get-add.py
| | | |___user-profile-by-name.py
| | | |___user-profile.py
| | | |___user-weibo.py
| | | |___visitor-cookie.py
| | | |___weibo-id.py
| | | |___weibo-screen-name.py
| | | |___weibo-uid.py
| |___team.md
|___f2
| |___apps
| | |___bark
| | | |___api.py
| | | |___cli.py
| | | |___crawler.py
| | | |___filter.py
| | | |___handler.py
| | | |___help.py
| | | |___model.py
| | | |___test
| | | | |___test_bark_crawler.py
| | | |___utils.py
| | |___douyin
| | | |___algorithm
| | | | |___webcast_signature.js
| | | | |___webcast_signature.py
| | | |___api.py
| | | |___cli.py
| | | |___crawler.py
| | | |___db.py
| | | |___dl.py
| | | |___filter.py
| | | |___handler.py
| | | |___help.py
| | | |___model.py
| | | |___proto
| | | | |___douyin_webcast.proto
| | | | |___douyin_webcast_pb2.py
| | | |___test
| | | | |___test_douyin_apps_model.py
| | | | |___test_douyin_aweme_id.py
| | | | |___test_douyin_crawler.py
| | | | |___test_douyin_handler.py
| | | | |___test_douyin_lrc.py
| | | | |___test_douyin_room_id.py
| | | | |___test_douyin_sec_user_id.py
| | | | |___test_douyin_token.py
| | | | |___test_douyin_webcast_id.py
| | | | |___test_douyin_webcast_signature.py
| | | |___utils.py
| | |___tiktok
| | | |___api.py
| | | |___cli.py
| | | |___crawler.py
| | | |___db.py
| | | |___dl.py
| | | |___filter.py
| | | |___handler.py
| | | |___help.py
| | | |___model.py
| | | |___proto
| | | | |___tiktok_webcast.proto
| | | | |___tiktok_webcast_pb2.py
| | | |___test
| | | | |___test_tiktok_aweme_id.py
| | | | |___test_tiktok_crawler.py
| | | | |___test_tiktok_device_id.py
| | | | |___test_tiktok_sec_user_id_fetcher.py
| | | | |___test_tiktok_token.py
| | | |___utils.py
| | |___twitter
| | | |___api.py
| | | |___cli.py
| | | |___crawler.py
| | | |___db.py
| | | |___dl.py
| | | |___filter.py
| | | |___handler.py
| | | |___help.py
| | | |___model.py
| | | |___test
| | | | |___test_model.py
| | | | |___test_tweet_desc.py
| | | | |___test_tweet_id.py
| | | | |___test_unique_id.py
| | | |___utils.py
| | |___weibo
| | | |___api.py
| | | |___cli.py
| | | |___crawler.py
| | | |___db.py
| | | |___dl.py
| | | |___filter.py
| | | |___handler.py
| | | |___help.py
| | | |___model.py
| | | |___test
| | | | |___test_gen_visitor.py
| | | | |___test_handler.py
| | | | |___test_weibo_desc.py
| | | | |___test_weibo_id.py
| | | | |___test_weibo_screen_name.py
| | | | |___test_weibo_uid.py
| | | |___utils.py
| | |_____apps__.py
| | |_____init__.py
| |___cli
| | |___cli_commands.py
| | |___cli_console.py
| | |_____init__.py
| |___conf
| | |___app.yaml
| | |___conf.yaml
| | |___defaults.yaml
| | |___test.yaml
| |___crawlers
| | |___base_crawler.py
| |___db
| | |___base_db.py
| |___dl
| | |___base_downloader.py
| |___exceptions
| | |___api_exceptions.py
| | |___conf_exceptions.py
| | |___db_exceptions.py
| | |___file_exceptions.py
| | |_____init__.py
| |___helps.py
| |___i18n
| | |___translator.py
| |___languages
| | |___en_US
| | | |___LC_MESSAGES
| | | | |___en_US.mo
| | |___zh_CN
| | | |___LC_MESSAGES
| | | | |___zh_CN.mo
| |___log
| | |___logger.py
| |___utils
| | |___abogus.py
| | |___conf_manager.py
| | |___decorators.py
| | |___json_filter.py
| | |___utils.py
| | |___xbogus.py
| | |____dl.py
| | |____signal.py
| | |____singleton.py
| | |_____init__.py
| |_____init__.py
| |_____main__.py
|___LICENSE
|___make_pot.bat
|___make_pot.sh
|___pnpm-lock.yaml
|___pyproject.toml
|___pytest.ini
|___README.en.md
|___README.md
|___SECURITY.md
|___tests
| |___data
| | |___douyin
| | | |___webcast
| | | | |___dict
| | | | | |___WebcastGiftMessage.json
| | | | | |___WebcastLiveShoppingMessage.json
| | | | | |___WebcastProductChangeMessage.json
| | | | | |___WebcastRoomUserSeqMessage.json
| | | | | |___WebcastSocialMessage.json
| | | | | |___WebcastStatsMessage.json
| | | | | |___WebcastUpdateFanTicketMessage.json
| | |___tiktok
| | | |___webcast
| | | | |___dict
| | | | | |___WebcastChatMessage.json
| | | | | |___WebcastGiftMessage.json
| | | | | |___WebcastLikeMessage.json
| | | | | |___WebcastLinkMicFanTicketMethod.json
| | | | | |___WebcastMemberMessage.json
| | | | | |___WebcastRoomStreamAdaptationMessage.json
| | | | | |___WebcastRoomUserSeqMessage.json
| | | | | |___WebcastSocialMessage.json
| | | | | |___WebcastStatsMessage.json
| | | | |___protobuf
| | | | | |___WebcastOecLiveShoppingMessage_0.bin
| | | | | |___WebcastOecLiveShoppingMessage_1.bin
| | | | | |___WebcastOecLiveShoppingMessage_2.bin
| |___package-lock.json
| |___test_abogus.py
| |___test_aes.py
| |___test_cli_commands.py
| |___test_cli_console.py
| |___test_desc_limit.py
| |___test_dl.py
| |___test_excetions.py
| |___test_gzip.py
| |___test_i18n.py
| |___test_json_filter.py
| |___test_logger.py
| |___test_py_version.py
| |___test_rsa.py
| |___test_signal.py
| |___test_singleton.py
| |___test_timestamp.py
| |___test_utils.py
| |___test_xbogus.py

💰 Sponsor

TikHub is a provider of premium data interface services. You can get free credits by signing up daily. You can use my signup invite link: https://beta-web.tikhub.io/users/signup?referral_code=6hLcGD94 or Invitation code: 6hLcGD94 to get $2 credit by signing up and recharging.

TikHub offers the following services:

👨‍💻 Contribute

If you're interested in contributing code to F2, please refer to the contributing guide.

🙏 Acknowledgements

Without these libraries and programs, F2 would not have been able to achieve its functionality. We sincerely thank them for their contributions and efforts.

⚖️ Terms & Disclaimers

  • Please strictly follow web scraping guidelines and do not use this project for any illegal activities.
  • Do not sell, share, encrypt, upload, research, or disseminate any personal information.
  • This project and its related code are for learning and research purposes only and do not constitute any explicit or implied guarantees.
  • Users are responsible for any risks and losses resulting from the use of this project and its code.
  • Please comply with the Apache-2.0 open-source license, and do not remove or modify any copyright information in the code.
  • If users wish to commercialize this project, they must specify the project repository address and not remove or modify any copyright information.
  • By using this project and its code, users agree to comply with the above regulations.

📜 License

Apache-2.0 license

Copyright (c) 2023 JohnserfSeed

📧 Contact

For inquiries related to F2, you can contact me using the following methods. Please be patient, and I will reply as soon as possible.