Skip to content

Commit fa659b1

Browse files
authored
[yt-dlp] Update to 2026.01.29 (#15343)
1 parent 31c195a commit fa659b1

File tree

3 files changed

+95
-14
lines changed

3 files changed

+95
-14
lines changed

stubs/yt-dlp/METADATA.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
1-
version = "2025.12.08"
1+
version = "2026.01.29"
22
upstream_repository = "https://github.com/yt-dlp/yt-dlp"
33
requires = ["websockets"]

stubs/yt-dlp/yt_dlp/extractor/common.pyi

Lines changed: 93 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import re
2-
from _typeshed import Unused
2+
from _typeshed import Incomplete, Unused
33
from collections.abc import Callable, Collection, Iterable, Iterator, Mapping, Sequence
44
from functools import cached_property
55
from json.decoder import JSONDecoder
@@ -8,6 +8,8 @@ from typing_extensions import Never, Required, TypeAlias, deprecated
88
from urllib.request import Request, _DataType
99
from xml.etree import ElementTree as ET
1010

11+
from yt_dlp.utils import PagedList
12+
1113
from ..cache import Cache
1214
from ..cookies import LenientSimpleCookie, YoutubeDLCookieJar
1315
from ..networking.common import Response, _RequestData
@@ -17,22 +19,101 @@ from ..YoutubeDL import YoutubeDL
1719

1820
@type_check_only
1921
class _InfoDict(TypedDict, total=False):
20-
age_limit: int
21-
availability: Literal["private", "premium_only", "subscriber_only", "needs_auth", "unlisted", "public"] | None
22+
id: Required[str]
23+
title: str | None
24+
formats: list[dict[str, Any]] | None
2225
available_at: int
23-
creator: str | None
24-
comment_count: int | None
26+
url: str | None
27+
ext: str | None
28+
format: str | None
29+
player_url: str | None
30+
direct: bool | None
31+
alt_title: str | None
32+
display_id: Incomplete
33+
thumbnails: list[dict[str, Incomplete]] | None
34+
thumbnail: str | None
35+
description: str | None
36+
uploader: str | None
37+
license: str | None
38+
creators: list[str] | None
39+
timestamp: int | float | None
40+
upload_date: Incomplete
41+
release_timestamp: Incomplete
42+
release_date: Incomplete
43+
release_year: Incomplete
44+
modified_timestamp: Incomplete
45+
modified_date: Incomplete
46+
uploader_id: Incomplete
47+
uploader_url: str | None
48+
channel: str | None
49+
channel_id: Incomplete
50+
channel_url: str | None
51+
channel_follower_count: int | None
52+
channel_is_verified: Incomplete
53+
location: Incomplete
54+
subtitles: Incomplete
55+
automatic_captions: Incomplete
2556
duration: int | None
26-
formats: list[dict[str, Any]] | None
27-
id: Required[str]
57+
view_count: int | None
58+
concurrent_view_count: int | None
59+
save_count: int | None
2860
like_count: int | None
61+
dislike_count: int | None
62+
repost_count: int | None
63+
average_rating: Incomplete
64+
comment_count: int | None
65+
comments: Incomplete
66+
age_limit: int
67+
webpage_url: str | None
68+
categories: list[str] | None
2969
tags: list[str] | None
30-
thumbnail: str | None
31-
timestamp: int | float | None
32-
title: str | None
33-
uploader: str | None
34-
url: str | None
70+
cast: list[Incomplete] | None
71+
is_live: bool | None
72+
was_live: bool | None
73+
live_status: Literal["is_live", "is_upcoming", "was_live", "not_live", "post_live"] | None
74+
start_time: Incomplete
75+
end_time: Incomplete
76+
chapters: Incomplete
77+
heatmap: Incomplete
78+
playable_in_embed: bool | str | None
79+
availability: Literal["private", "premium_only", "subscriber_only", "needs_auth", "unlisted", "public"] | None
80+
media_type: str | None
81+
_old_archive_ids: Incomplete
82+
_format_sort_fields: Incomplete
83+
chapter: str | None
84+
chapter_number: int | None
85+
chapter_id: str | None
86+
series: str | None
87+
series_id: str | None
88+
season: str | None
89+
season_number: int | None
90+
season_id: str | None
91+
episode: Incomplete
92+
episode_number: int | None
93+
episode_id: str | None
94+
track: str | None
95+
track_number: int | None
96+
track_id: str | None
97+
artists: list[str] | None
98+
composers: list[str] | None
99+
genres: list[str] | None
100+
album: str | None
101+
album_type: str | None
102+
album_artists: list[str] | None
103+
disc_number: int | None
104+
section_start: Incomplete
105+
section_end: Incomplete
106+
rows: int | None
107+
columns: int | None
108+
playlist_count: int | None
109+
entries: Iterable[_InfoDict] | PagedList
35110
requested_formats: Iterable[_InfoDict]
111+
# deprecated fields:
112+
composer: Incomplete
113+
artist: Incomplete
114+
genre: Incomplete
115+
album_artist: Incomplete
116+
creator: str | None
36117

37118
_StrNoDefaultOrNone: TypeAlias = str | None | type[NO_DEFAULT]
38119
_T = TypeVar("_T")

stubs/yt-dlp/yt_dlp/utils/_utils.pyi

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -274,7 +274,7 @@ def extract_timezone(date_str: str, default: Any = None) -> tuple[timedelta, str
274274
def parse_iso8601(date_str: str, delimiter: str = "T", timezone: type[NO_DEFAULT] | Any | None = None) -> int: ...
275275
def date_formats(day_first: bool = True) -> list[str]: ...
276276
def unified_strdate(date_str: str, day_first: bool = True) -> str: ...
277-
def unified_timestamp(date_str: str, day_first: bool = True) -> int: ...
277+
def unified_timestamp(date_str: str, day_first: bool = True, tz_offset: float = 0) -> int: ...
278278
def determine_ext(url: str, default_ext: str = "unknown_video") -> str: ...
279279
def subtitles_filename(filename: str, sub_lang: str, sub_format: str, expected_real_ext: str | None = None) -> str: ...
280280
def datetime_from_str(date_str: str, precision: str = "auto", format: str = "%Y%m%d") -> datetime: ...

0 commit comments

Comments
 (0)