brerk
e00c717b15
[turbo] update 'saint' extractors ( #8893 #8896 )
...
* Implements turbo.py & remove from domain pattern from saints.py
* Remove leftover commented pattern from saints.py
* Make turbo.py comply with flake8
* Add album support
* Improved metadata extracion for albums and single files & created turbo.py tests using saints.py test
* Align turbo.py extractor with flake8 rules
* Fix #class name on turbo.py tests
* Fix #category test
* Fix #category test x2
* Fix #category tests
* Fix #category tests
* Fix TurboMediaExtractor self.groups unpacking
* update basic module formatting
* replace 'saint' with 'turbo' in modules list
* remove saint extractors and tests
* update & simplify 'media' extractor
* update & simplify 'album' extractor
* update tests
* update supportedsites
* update 'category-map' & 'config-map'
---------
Co-authored-by: Mike Fährmann <mike_faehrmann@web.de >
2026-01-19 22:20:13 +01:00
Mike Fährmann
cc5bfa6eb0
[xenforo] support 'celebforum.to' ( #8902 )
2026-01-19 16:04:33 +01:00
Mike Fährmann
09635352d0
[imagebam] raise 'NotFoundError' for deleted galleries
2026-01-19 11:19:35 +01:00
Mike Fährmann
8a481a5126
[tests/results] allow using exception names for '#exception'
2026-01-19 11:19:12 +01:00
Mike Fährmann
8c9ca609ea
[imagebam] raise 'NotFoundError' for deleted images ( #8890 )
2026-01-18 21:27:27 +01:00
Mike Fährmann
c23beee57c
[util] use functions for predicates
...
more lightweight and faster than classes
2026-01-18 20:32:36 +01:00
AngeredBacterium
d64ca94361
[saint] support alternate turbovid domain ( #8888 )
...
* Add alternate turbovid domain
* simplify regex pattern
* add tests
2026-01-16 09:37:52 +01:00
Stephon Parker
43387c535d
[thefap] add support ( #8821 #8822 )
...
* adding site support for thefap.com
* fixing typo in url tld
* improve & simplify 'model' extractor
* update 'post' extractor
* update docs/supportedsites
* add tests
---------
Co-authored-by: Mike Fährmann <mike_faehrmann@web.de >
2026-01-14 21:11:56 +01:00
Mike Fährmann
812482e53e
[xenforo] extract 'author_slug' metadata ( #8785 )
2026-01-13 21:57:04 +01:00
Mike Fährmann
c4040bb45b
[rule34xyz] support URLs with 'www' subdomain ( #8875 )
2026-01-13 12:06:45 +01:00
Mike Fährmann
f1fd83e87e
[xenforo] fix/improve 'bb*Wrapper' extraction ( #8868 )
2026-01-12 20:48:14 +01:00
Mike Fährmann
200ad21cbd
[scripts/generate_result] fix 'small()' for empty objects
2026-01-11 22:55:19 +01:00
Mike Fährmann
d8128fbd4c
[booth:item] support URLs with language codes
2026-01-11 22:17:36 +01:00
Mike Fährmann
d7c1c30c62
[booth] add 'category' extractor ( #8867 )
2026-01-11 22:17:01 +01:00
Mike Fährmann
a79a945494
[formatter] overload '.' operator
...
implement generic access of
* list items (L[1] -> L.1)
* dict vslues (D[key] -> D.key)
* object attributes (O.attr -> O.attr)
in standard format strings
2026-01-11 17:49:55 +01:00
camellia2077
084a6d73e0
[bilibili] add support for Live Photo (video) downloads ( #8860 )
...
* bilibili: add support for live photo downloads
* fix: resolve flake8 linting errors (whitespace and line length)
* fix: resolve flake8 E302 and W293 linting errors
* fix: resolve flake8 W293 and E302 linting errors
* simplify syntax
* add 'livephoto' option
* add tests
2026-01-10 19:27:34 +01:00
Mike Fährmann
18b4c67c65
[ahottie:album] support multiple pages ( #8862 )
2026-01-10 18:08:13 +01:00
Mike Fährmann
76930ad44c
[saint] support 'turbovid.cr' URLs ( #8851 )
2026-01-10 18:08:13 +01:00
Mike Fährmann
bb7d540c7a
[xenforo] add 'media-category' extractor ( #8785 )
2026-01-10 18:08:05 +01:00
Mike Fährmann
60104f20af
[xenforo] implement 'media' support ( #8785 )
...
add 'media-user' and 'media-item' extractors
TODO: 'media-category' extractor (?)
2026-01-09 21:21:19 +01:00
Mike Fährmann
fe1fc5da12
[furaffinity:favorite] support URLs with custom start position
2026-01-09 18:02:10 +01:00
Mike Fährmann
7a2f15348f
[imagetwist:gallery] extract 'gallery_title' & 'gallery_id' metadata
2026-01-09 15:37:57 +01:00
Mike Fährmann
1e2a2c258c
[imagetwist:gallery] support 'page' URLs ( #8826 )
2026-01-09 10:41:28 +01:00
Mike Fährmann
be23e164b7
[shopify] support URLs starting with language codes
2026-01-08 19:00:03 +01:00
Mike Fährmann
5b8627a646
[imagetwist:gallery] support multiple pages ( #8826 )
2026-01-07 21:39:19 +01:00
Mike Fährmann
b1a708beb9
[weibo:album] implement 'subalbum' support ( #8792 )
...
https://weibo.com/u/USER?tabtype=album-1
https://weibo.com/u/USER?tabtype=album-NAME
https://weibo.com/u/USER?tabtype=album-all
https://weibo.com/u/USER?tabtype=album-only
2026-01-07 19:23:54 +01:00
Mike Fährmann
d491ed8ed8
[tests/results] defer formatter creation
2026-01-07 19:23:54 +01:00
Mike Fährmann
1c56d961fa
[tests/results] add URL as message for child extractor tests
2026-01-07 19:23:54 +01:00
Mike Fährmann
869f601eb7
[bellazon] unescape 'thread[slug]' metadata
2026-01-07 19:23:54 +01:00
Mike Fährmann
88732321ad
[bellazon] match thread URLs with escaped characters
2026-01-07 19:23:54 +01:00
Mike Fährmann
775e2d6821
[bellazon] use 'data-full-image' URLs if available ( #8833 )
2026-01-07 19:23:45 +01:00
Mike Fährmann
223779f456
[tests/results] add workaround for 'identity' format fields
2026-01-06 21:53:16 +01:00
Mike Fährmann
0b3258430f
[tests/results] fix lists for multi-vslue checks
2026-01-06 21:53:16 +01:00
Mike Fährmann
cf96fc6ebe
[koofr] refactor ( #8803 )
...
https://github.com/mikf/gallery-dl/issues/8803#issuecomment-3708215475
https://github.com/mikf/gallery-dl/issues/8803#issuecomment-3708358606
- add 'recursive' option, remove 'zip'
- recurse into subdirectories
- add 'path' metadata
- remove 'count' & 'num' metadata
- update default directory & archive format
2026-01-06 21:52:58 +01:00
Mike Fährmann
c745a57bd7
[dankefuerslesen] extend URL pattern ( #8811 )
...
- https://danke.moe/read/manga/MANGA/
- https://danke.moe/read/series/MANGA/
- https://danke.moe/reader/manga/MANGA/
- https://danke.moe/reader/series/MANGA/
2026-01-03 13:19:20 +01:00
Mike Fährmann
fcf6f05a0d
[koofr] implement 'zip' option ( #6582 #8700 )
...
Download individual files instead of '.zip' bundle by default.
https://github.com/mikf/gallery-dl/issues/6582#issuecomment-3679504391
2026-01-01 19:13:31 +01:00
Mike Fährmann
5e94bae906
[pixiv] support 'sketch' include ( #8789 )
2026-01-01 10:49:41 +01:00
Mike Fährmann
4e56be4def
[pixiv] provide 'count' metadata ( #8794 )
2026-01-01 10:15:04 +01:00
Mike Fährmann
8792d7faea
[whyp] add support ( #8725 )
2025-12-31 18:58:33 +01:00
Duy NGUYEN
2087730b75
[batoto] replace k-subdomain image URLs with n-subdomain ( #8791 )
...
* [batoto] replace k-subdomain image URLs with n-subdomain
Update tests to use battwo.com proxy domain and current metadata
* [batoto] revert to list comprehension
2025-12-31 16:32:03 +01:00
Mike Fährmann
add9fbc13b
[manganelo] add 'bookmark' extractor ( #8776 )
2025-12-31 11:06:08 +01:00
Mike Fährmann
9ff3cc4a8e
[xenforo] fix incomplete video URLs ( #8786 )
2025-12-31 10:48:51 +01:00
Mike Fährmann
2a629fd653
[xenforo] support '/#post-ID' URLs
2025-12-31 10:43:53 +01:00
Mike Fährmann
51c155df94
[yourlesbians] add 'album' extractor ( #8713 )
2025-12-30 20:33:50 +01:00
CasualYouTuber31
a6c845bdc8
[tiktok] remove yt-dlp dependency & add support for more post types ( #8715 )
...
#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()'
2025-12-30 17:17:57 +01:00
Mike Fährmann
c8c4575c7f
[dl:http] add MIME type and signature for .aac files
2025-12-29 19:05:34 +01:00
Mike Fährmann
c2917ad5c5
[ahottie] add aupport ( #8710 )
2025-12-29 18:47:10 +01:00
Mike Fährmann
4f535ec606
[imgpv] add 'image' extractor ( #8773 )
2025-12-28 21:36:06 +01:00
Oleguer Llopart
bea0e16970
[webtoons] extract 'num_play' & 'num_stop' for background music ( #8733 #8755 )
...
* [webtoons] play_image and stop_image in background music
* [webtoons] add play_image and stop_image fields to test results
* [webtoons]: flake8
* [webtoons]: flake8 (2)
* update & improve
- remove global 'images_urls'
- move enumerate loop into images() extraction
* simplify 'play_image' etc extraction
* rename 'play_image' etc
- num_play
- num_stop
- filename_play
- filename_stop
---------
Co-authored-by: Mike Fährmann <mike_faehrmann@web.de >
2025-12-27 09:09:10 +01:00
Mike Fährmann
daf6cc2c78
[twitter] add 'notifications' extractor ( #7974 )
2025-12-26 18:06:00 +01:00