#7246#8035#8466#8730
* [tiktok] support extracting videos directly without yt-dlp
* [tiktok] support extracting users directly without yt-dlp
* [tiktok] fixing logic, tests, linting errors
* [tiktok] implement tiktok-range support for non-yt-dlp user extractor
* [tiktok] Skip range filter if no ranges are given
* [tiktok] Remove debug code
* [tiktok] only check for faulty device IDs during the first couple of passes
I think the original yt-dlp solution assumes that if a device ID works once, it will always work.
Plus, my approach would cause needless retries in certain cases if hasMorePrevious does end up being wrong like the original algorithm accounts for. So let's copy the original algorithm here, too.
* [tiktok] support stories
* [tiktok] you can now extract audio without extracting photos
* [tiktok] add TiktokFollowingExtractor
* [tiktok] update supportedsites to include stories
* [tiktok] Keep tiktok-range option for no content user account test
It acts as a nice guard against that account suddenly having lots of posts to extract
* [tiktok] TiktokUserExtractor and TiktokFollowingExtractor rewrite
* [tiktok] Fix avatar naming convention to match that of posts
* [tiktok] remove type hints for compatibility with older Python versions
* [tiktok] Improve performance of TiktokFollowingExtractor
This was largely achieved using the story/batch/item_list endpoint
* [tiktok] Forgot to run flake8
* [tiktok] remove old constant
* [tiktok] Support order-posts config item
* [tiktok] flake8
* [tiktok] Older Python versions don't support match
* [tiktok] always ask for posts in chronological order when in "desc" mode
We should aim to avoid having pinned posts returned before non-pinned ones
* [tiktok] Add liked posts extraction
* [tiktok] Add reposts extraction
* [tiktok] Add saved posts extraction
* cleanup imports
* remove '# MARK:' comments
* remove & simplify 'except' statements
KeyboardInterrupt & SystemExit inherit from BaseException (not Exception)
and therefore don't need special handling
* split 'user' extractor
* move PATTERNs into their respective functions
* use dict comprehensions
* add only-matching test URLs for split user extractors
* update config docs
rename 'tiktok-user-extractor' to 'ytdl'
* document '"popular"' 'order-posts' value
* inline and remove 'util.chunk()'
[tiktok] Move avatar download to the user extractor, which results in more accurate metadata output (it would previously write the metadata of the video which the avatar was scraped from)
[tiktok] Fix tests and remove redundant user profile test
* Add TikTok photo support
#3061#4177
* Address linting errors
* Fix more test failures
* Forgot to update category names in tests
* Looking into re issue
* Follow default yt-dlp output template
* Fix format string error on 3.5
* Support downloading videos and audio
Respond to comments
Improve archiving and file naming
* Forgot to update supportedsites.md
* Support user profiles
* Fix indentation
* Prevent matching with more than one TikTok extractor
* Fix TikTok regex
* Support TikTok profile avatars
* Fix supportedsites.md
* TikTok: Ignore no formats error
In my limited experience, this doesn't mean that gallery-dl can't download the photo post (but this could mean that you can't download the audio)
* Fix error reporting message
* TikTok: Support more URL formats
vt.tiktok.com
www.tiktok.com/t/
* TikTok: Only download avatar when extracting user profile
* TikTok: Document profile avatar limitation
* TikTok: Add support for www.tiktokv.com/share links
* Address Share -> Sharepost issue
* TikTok: Export post's creation date in JSON (ISO 8601)
* [tiktok] update
* [tiktok] update 'vmpost' handling
just perform a HEAD request and handle its response
* [tiktok] build URLs from post IDs
instead of reusing unchanged input URLs
* [tiktok] combine 'post' and 'sharepost' extractors
* [tiktok] update default filenames
put 'id' and 'num' first to ensure better file order
* [tiktok] improve ytdl usage
- speed up extraction by passing '"extract_flat": True'
- pass more user options and cookies
- pre-define 'TikTokUser' extractor usage
* [tiktok] Add _COOKIES entry to AUTH_MAP
* [tiktok] Always download user avatars
* [tiktok] Add more documentation to supportedsites.md
* [tiktok] Address review comments
---------
Co-authored-by: Mike Fährmann <mike_faehrmann@web.de>