[tiktok] Queue links from user profiles instead of returning a list of links

[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
This commit is contained in:
CasualYT31
2025-03-19 18:50:06 +00:00
parent c7685bdfc7
commit d6d2b1fba0
2 changed files with 47 additions and 75 deletions

View File

@@ -7,7 +7,8 @@
from gallery_dl.extractor import tiktok
PATTERN = r"https://p1[69]-[^/?#.]+\.tiktokcdn[^/?#.]*\.com/[^/?#]+/\w+~.*\.jpe?g"
PATTERN_WITH_AUDIO = r"(?:" + PATTERN + r"|ytdl:http.+)"
PATTERN_WITH_AUDIO = r"(?:" + PATTERN + r"|https://v\d+m?\.tiktokcdn[^/?#.]*\.com/[^?#]+\?[^/?#]+)"
USER_PATTERN = r"(https://www.tiktok.com/@([\w_.-]+)/video/(\d+)|" + PATTERN + r")"
__tests__ = (
@@ -17,7 +18,7 @@ __tests__ = (
"#category" : ("", "tiktok", "post"),
"#class" : tiktok.TiktokPostExtractor,
"#pattern" : PATTERN,
"#options" : {"videos": False},
"#options" : {"videos": False, "audio": False},
},
{
@@ -26,7 +27,7 @@ __tests__ = (
"#category" : ("", "tiktok", "post"),
"#class" : tiktok.TiktokPostExtractor,
"#pattern" : PATTERN,
"#options" : {"videos": False},
"#options" : {"videos": False, "audio": False},
},
{
@@ -35,7 +36,7 @@ __tests__ = (
"#category" : ("", "tiktok", "post"),
"#class" : tiktok.TiktokPostExtractor,
"#pattern" : PATTERN,
"#options" : {"videos": False},
"#options" : {"videos": False, "audio": False},
},
{
@@ -44,7 +45,7 @@ __tests__ = (
"#category" : ("", "tiktok", "post"),
"#class" : tiktok.TiktokPostExtractor,
"#pattern" : PATTERN,
"#options" : {"videos": False},
"#options" : {"videos": False, "audio": False},
},
{
@@ -53,7 +54,7 @@ __tests__ = (
"#category" : ("", "tiktok", "post"),
"#class" : tiktok.TiktokPostExtractor,
"#pattern" : PATTERN,
"#options" : {"videos": False},
"#options" : {"videos": False, "audio": False},
},
{
@@ -62,7 +63,7 @@ __tests__ = (
"#category" : ("", "tiktok", "post"),
"#class" : tiktok.TiktokPostExtractor,
"#pattern" : PATTERN,
"#options" : {"videos": False},
"#options" : {"videos": False, "audio": False},
},
{
@@ -71,7 +72,7 @@ __tests__ = (
"#category" : ("", "tiktok", "post"),
"#class" : tiktok.TiktokPostExtractor,
"#pattern" : PATTERN,
"#options" : {"videos": False},
"#options" : {"videos": False, "audio": False},
},
{
@@ -80,7 +81,7 @@ __tests__ = (
"#category" : ("", "tiktok", "post"),
"#class" : tiktok.TiktokPostExtractor,
"#pattern" : PATTERN,
"#options" : {"videos": False},
"#options" : {"videos": False, "audio": False},
},
{
@@ -89,7 +90,7 @@ __tests__ = (
"#category" : ("", "tiktok", "post"),
"#class" : tiktok.TiktokPostExtractor,
"#pattern" : PATTERN,
"#options" : {"videos": False},
"#options" : {"videos": False, "audio": False},
},
{
@@ -97,7 +98,7 @@ __tests__ = (
"#comment" : "deleted post",
"#category" : ("", "tiktok", "post"),
"#class" : tiktok.TiktokPostExtractor,
"#options" : {"videos": False},
"#options" : {"videos": False, "audio": False},
"count" : 0,
},
@@ -107,7 +108,7 @@ __tests__ = (
"#category" : ("", "tiktok", "post"),
"#class" : tiktok.TiktokPostExtractor,
"#urls" : "ytdl:https://www.tiktok.com/@memezar/video/7449708266168274208",
"#options" : {"videos": True},
"#options" : {"videos": True, "audio": True},
},
{
@@ -116,7 +117,7 @@ __tests__ = (
"#category" : ("", "tiktok", "post"),
"#class" : tiktok.TiktokPostExtractor,
"#urls" : "ytdl:https://www.tiktok.com/@memezar/video/7449708266168274208",
"#options" : {"videos": True},
"#options" : {"videos": True, "audio": True},
},
{
@@ -241,17 +242,8 @@ __tests__ = (
"#comment" : "User profile",
"#category" : ("", "tiktok", "user"),
"#class" : tiktok.TiktokUserExtractor,
"#pattern" : PATTERN_WITH_AUDIO,
"#options" : {"videos": True, "tiktok-range": "1-10"},
},
{
"#url" : "https://www.tiktok.com/@chillezy/",
"#comment" : "User profile without audio or videos",
"#category" : ("", "tiktok", "user"),
"#class" : tiktok.TiktokUserExtractor,
"#pattern" : PATTERN,
"#options" : {"videos": False, "tiktok-range": "1-10"},
"#pattern" : USER_PATTERN,
"#options" : {"videos": True, "audio": True, "tiktok-range": "1-10"},
},
{