getanyapi 0.90.12__tar.gz → 0.91.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {getanyapi-0.90.12 → getanyapi-0.91.0}/PKG-INFO +1 -1
- {getanyapi-0.90.12 → getanyapi-0.91.0}/pyproject.toml +1 -1
- {getanyapi-0.90.12 → getanyapi-0.91.0}/src/getanyapi/__init__.py +1 -1
- {getanyapi-0.90.12 → getanyapi-0.91.0}/src/getanyapi/platforms/facebook.py +4 -4
- {getanyapi-0.90.12 → getanyapi-0.91.0}/src/getanyapi/platforms/google.py +2 -2
- {getanyapi-0.90.12 → getanyapi-0.91.0}/src/getanyapi/platforms/google_ads.py +2 -2
- {getanyapi-0.90.12 → getanyapi-0.91.0}/src/getanyapi/platforms/threads.py +2 -2
- {getanyapi-0.90.12 → getanyapi-0.91.0}/src/getanyapi/platforms/tiktok.py +2 -2
- {getanyapi-0.90.12 → getanyapi-0.91.0}/src/getanyapi/platforms/youtube.py +20 -6
- {getanyapi-0.90.12 → getanyapi-0.91.0}/.gitignore +0 -0
- {getanyapi-0.90.12 → getanyapi-0.91.0}/README.md +0 -0
- {getanyapi-0.90.12 → getanyapi-0.91.0}/src/getanyapi/_account.py +0 -0
- {getanyapi-0.90.12 → getanyapi-0.91.0}/src/getanyapi/_async_client.py +0 -0
- {getanyapi-0.90.12 → getanyapi-0.91.0}/src/getanyapi/_client.py +0 -0
- {getanyapi-0.90.12 → getanyapi-0.91.0}/src/getanyapi/_errors.py +0 -0
- {getanyapi-0.90.12 → getanyapi-0.91.0}/src/getanyapi/_idempotency.py +0 -0
- {getanyapi-0.90.12 → getanyapi-0.91.0}/src/getanyapi/_pagination.py +0 -0
- {getanyapi-0.90.12 → getanyapi-0.91.0}/src/getanyapi/_transport.py +0 -0
- {getanyapi-0.90.12 → getanyapi-0.91.0}/src/getanyapi/discovery_types.py +0 -0
- {getanyapi-0.90.12 → getanyapi-0.91.0}/src/getanyapi/platforms/__init__.py +0 -0
- {getanyapi-0.90.12 → getanyapi-0.91.0}/src/getanyapi/platforms/ahrefs.py +0 -0
- {getanyapi-0.90.12 → getanyapi-0.91.0}/src/getanyapi/platforms/airbnb.py +0 -0
- {getanyapi-0.90.12 → getanyapi-0.91.0}/src/getanyapi/platforms/alibaba.py +0 -0
- {getanyapi-0.90.12 → getanyapi-0.91.0}/src/getanyapi/platforms/amazon.py +0 -0
- {getanyapi-0.90.12 → getanyapi-0.91.0}/src/getanyapi/platforms/apollo.py +0 -0
- {getanyapi-0.90.12 → getanyapi-0.91.0}/src/getanyapi/platforms/appstore.py +0 -0
- {getanyapi-0.90.12 → getanyapi-0.91.0}/src/getanyapi/platforms/bluesky.py +0 -0
- {getanyapi-0.90.12 → getanyapi-0.91.0}/src/getanyapi/platforms/booking.py +0 -0
- {getanyapi-0.90.12 → getanyapi-0.91.0}/src/getanyapi/platforms/capterra.py +0 -0
- {getanyapi-0.90.12 → getanyapi-0.91.0}/src/getanyapi/platforms/chatgpt.py +0 -0
- {getanyapi-0.90.12 → getanyapi-0.91.0}/src/getanyapi/platforms/coinmarketcap.py +0 -0
- {getanyapi-0.90.12 → getanyapi-0.91.0}/src/getanyapi/platforms/company.py +0 -0
- {getanyapi-0.90.12 → getanyapi-0.91.0}/src/getanyapi/platforms/company_enrichment.py +0 -0
- {getanyapi-0.90.12 → getanyapi-0.91.0}/src/getanyapi/platforms/company_identify.py +0 -0
- {getanyapi-0.90.12 → getanyapi-0.91.0}/src/getanyapi/platforms/company_search.py +0 -0
- {getanyapi-0.90.12 → getanyapi-0.91.0}/src/getanyapi/platforms/congress.py +0 -0
- {getanyapi-0.90.12 → getanyapi-0.91.0}/src/getanyapi/platforms/contact_enrichment.py +0 -0
- {getanyapi-0.90.12 → getanyapi-0.91.0}/src/getanyapi/platforms/douyin.py +0 -0
- {getanyapi-0.90.12 → getanyapi-0.91.0}/src/getanyapi/platforms/ebay.py +0 -0
- {getanyapi-0.90.12 → getanyapi-0.91.0}/src/getanyapi/platforms/email.py +0 -0
- {getanyapi-0.90.12 → getanyapi-0.91.0}/src/getanyapi/platforms/email_finding.py +0 -0
- {getanyapi-0.90.12 → getanyapi-0.91.0}/src/getanyapi/platforms/email_verification.py +0 -0
- {getanyapi-0.90.12 → getanyapi-0.91.0}/src/getanyapi/platforms/fiverr.py +0 -0
- {getanyapi-0.90.12 → getanyapi-0.91.0}/src/getanyapi/platforms/g2.py +0 -0
- {getanyapi-0.90.12 → getanyapi-0.91.0}/src/getanyapi/platforms/gemini.py +0 -0
- {getanyapi-0.90.12 → getanyapi-0.91.0}/src/getanyapi/platforms/github.py +0 -0
- {getanyapi-0.90.12 → getanyapi-0.91.0}/src/getanyapi/platforms/glassdoor.py +0 -0
- {getanyapi-0.90.12 → getanyapi-0.91.0}/src/getanyapi/platforms/google_finance.py +0 -0
- {getanyapi-0.90.12 → getanyapi-0.91.0}/src/getanyapi/platforms/google_hotels.py +0 -0
- {getanyapi-0.90.12 → getanyapi-0.91.0}/src/getanyapi/platforms/google_shopping.py +0 -0
- {getanyapi-0.90.12 → getanyapi-0.91.0}/src/getanyapi/platforms/hackernews.py +0 -0
- {getanyapi-0.90.12 → getanyapi-0.91.0}/src/getanyapi/platforms/indeed.py +0 -0
- {getanyapi-0.90.12 → getanyapi-0.91.0}/src/getanyapi/platforms/instagram.py +0 -0
- {getanyapi-0.90.12 → getanyapi-0.91.0}/src/getanyapi/platforms/job_search.py +0 -0
- {getanyapi-0.90.12 → getanyapi-0.91.0}/src/getanyapi/platforms/linkedin.py +0 -0
- {getanyapi-0.90.12 → getanyapi-0.91.0}/src/getanyapi/platforms/maps.py +0 -0
- {getanyapi-0.90.12 → getanyapi-0.91.0}/src/getanyapi/platforms/mobile_phone.py +0 -0
- {getanyapi-0.90.12 → getanyapi-0.91.0}/src/getanyapi/platforms/naver.py +0 -0
- {getanyapi-0.90.12 → getanyapi-0.91.0}/src/getanyapi/platforms/nextdoor.py +0 -0
- {getanyapi-0.90.12 → getanyapi-0.91.0}/src/getanyapi/platforms/people_search.py +0 -0
- {getanyapi-0.90.12 → getanyapi-0.91.0}/src/getanyapi/platforms/perplexity.py +0 -0
- {getanyapi-0.90.12 → getanyapi-0.91.0}/src/getanyapi/platforms/person.py +0 -0
- {getanyapi-0.90.12 → getanyapi-0.91.0}/src/getanyapi/platforms/person_enrichment.py +0 -0
- {getanyapi-0.90.12 → getanyapi-0.91.0}/src/getanyapi/platforms/pexels.py +0 -0
- {getanyapi-0.90.12 → getanyapi-0.91.0}/src/getanyapi/platforms/pinterest.py +0 -0
- {getanyapi-0.90.12 → getanyapi-0.91.0}/src/getanyapi/platforms/playstore.py +0 -0
- {getanyapi-0.90.12 → getanyapi-0.91.0}/src/getanyapi/platforms/polymarket.py +0 -0
- {getanyapi-0.90.12 → getanyapi-0.91.0}/src/getanyapi/platforms/property_records.py +0 -0
- {getanyapi-0.90.12 → getanyapi-0.91.0}/src/getanyapi/platforms/realtor.py +0 -0
- {getanyapi-0.90.12 → getanyapi-0.91.0}/src/getanyapi/platforms/reddit.py +0 -0
- {getanyapi-0.90.12 → getanyapi-0.91.0}/src/getanyapi/platforms/redfin.py +0 -0
- {getanyapi-0.90.12 → getanyapi-0.91.0}/src/getanyapi/platforms/rednote.py +0 -0
- {getanyapi-0.90.12 → getanyapi-0.91.0}/src/getanyapi/platforms/sec.py +0 -0
- {getanyapi-0.90.12 → getanyapi-0.91.0}/src/getanyapi/platforms/semrush.py +0 -0
- {getanyapi-0.90.12 → getanyapi-0.91.0}/src/getanyapi/platforms/seo.py +0 -0
- {getanyapi-0.90.12 → getanyapi-0.91.0}/src/getanyapi/platforms/similarweb.py +0 -0
- {getanyapi-0.90.12 → getanyapi-0.91.0}/src/getanyapi/platforms/snapchat.py +0 -0
- {getanyapi-0.90.12 → getanyapi-0.91.0}/src/getanyapi/platforms/social.py +0 -0
- {getanyapi-0.90.12 → getanyapi-0.91.0}/src/getanyapi/platforms/spotify.py +0 -0
- {getanyapi-0.90.12 → getanyapi-0.91.0}/src/getanyapi/platforms/substack.py +0 -0
- {getanyapi-0.90.12 → getanyapi-0.91.0}/src/getanyapi/platforms/technographics.py +0 -0
- {getanyapi-0.90.12 → getanyapi-0.91.0}/src/getanyapi/platforms/tiktok_shop.py +0 -0
- {getanyapi-0.90.12 → getanyapi-0.91.0}/src/getanyapi/platforms/tripadvisor.py +0 -0
- {getanyapi-0.90.12 → getanyapi-0.91.0}/src/getanyapi/platforms/trustpilot.py +0 -0
- {getanyapi-0.90.12 → getanyapi-0.91.0}/src/getanyapi/platforms/truthsocial.py +0 -0
- {getanyapi-0.90.12 → getanyapi-0.91.0}/src/getanyapi/platforms/twitter.py +0 -0
- {getanyapi-0.90.12 → getanyapi-0.91.0}/src/getanyapi/platforms/unsplash.py +0 -0
- {getanyapi-0.90.12 → getanyapi-0.91.0}/src/getanyapi/platforms/upwork.py +0 -0
- {getanyapi-0.90.12 → getanyapi-0.91.0}/src/getanyapi/platforms/walmart.py +0 -0
- {getanyapi-0.90.12 → getanyapi-0.91.0}/src/getanyapi/platforms/web.py +0 -0
- {getanyapi-0.90.12 → getanyapi-0.91.0}/src/getanyapi/platforms/weibo.py +0 -0
- {getanyapi-0.90.12 → getanyapi-0.91.0}/src/getanyapi/platforms/yahoo_finance.py +0 -0
- {getanyapi-0.90.12 → getanyapi-0.91.0}/src/getanyapi/platforms/yelp.py +0 -0
- {getanyapi-0.90.12 → getanyapi-0.91.0}/src/getanyapi/platforms/zhihu.py +0 -0
- {getanyapi-0.90.12 → getanyapi-0.91.0}/src/getanyapi/platforms/zillow.py +0 -0
- {getanyapi-0.90.12 → getanyapi-0.91.0}/src/getanyapi/py.typed +0 -0
- {getanyapi-0.90.12 → getanyapi-0.91.0}/src/getanyapi/types.py +0 -0
- {getanyapi-0.90.12 → getanyapi-0.91.0}/tests/conftest.py +0 -0
- {getanyapi-0.90.12 → getanyapi-0.91.0}/tests/test_account.py +0 -0
- {getanyapi-0.90.12 → getanyapi-0.91.0}/tests/test_client.py +0 -0
- {getanyapi-0.90.12 → getanyapi-0.91.0}/tests/test_durable_requests.py +0 -0
- {getanyapi-0.90.12 → getanyapi-0.91.0}/tests/test_envelope.py +0 -0
- {getanyapi-0.90.12 → getanyapi-0.91.0}/tests/test_errors.py +0 -0
- {getanyapi-0.90.12 → getanyapi-0.91.0}/tests/test_fixture_roundtrip.py +0 -0
- {getanyapi-0.90.12 → getanyapi-0.91.0}/tests/test_fixture_sweep.py +0 -0
- {getanyapi-0.90.12 → getanyapi-0.91.0}/tests/test_not_found_reason.py +0 -0
- {getanyapi-0.90.12 → getanyapi-0.91.0}/tests/test_pagination.py +0 -0
- {getanyapi-0.90.12 → getanyapi-0.91.0}/tests/test_transport.py +0 -0
- {getanyapi-0.90.12 → getanyapi-0.91.0}/uv.lock +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.5
|
|
2
2
|
Name: getanyapi
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.91.0
|
|
4
4
|
Summary: Official typed Python SDK for AnyAPI: any API, one wallet, USD, no subscriptions.
|
|
5
5
|
Project-URL: Homepage, https://getanyapi.com
|
|
6
6
|
Project-URL: Documentation, https://getanyapi.com/docs
|
|
@@ -2619,7 +2619,7 @@ class FacebookNamespace:
|
|
|
2619
2619
|
Search the Meta Ad Library by keyword and get matching ads (advertiser,
|
|
2620
2620
|
creative text, CTA, platforms, and run dates) with cursor pagination.
|
|
2621
2621
|
|
|
2622
|
-
Price: $0.
|
|
2622
|
+
Price: $0.0011 per request.
|
|
2623
2623
|
|
|
2624
2624
|
Example:
|
|
2625
2625
|
res = client.facebook.ads_search(country="US", query="nike", searchType="keyword_exact_phrase")
|
|
@@ -2707,7 +2707,7 @@ class FacebookNamespace:
|
|
|
2707
2707
|
List the Meta Ad Library ads a company is running by page ID or company name
|
|
2708
2708
|
(creative text, format, platforms, and run dates) with cursor pagination.
|
|
2709
2709
|
|
|
2710
|
-
Price: $0.
|
|
2710
|
+
Price: $0.0011 per request.
|
|
2711
2711
|
|
|
2712
2712
|
Example:
|
|
2713
2713
|
res = client.facebook.company_ads(pageId="15087023444", sortBy="recent")
|
|
@@ -3474,7 +3474,7 @@ class AsyncFacebookNamespace:
|
|
|
3474
3474
|
Search the Meta Ad Library by keyword and get matching ads (advertiser,
|
|
3475
3475
|
creative text, CTA, platforms, and run dates) with cursor pagination.
|
|
3476
3476
|
|
|
3477
|
-
Price: $0.
|
|
3477
|
+
Price: $0.0011 per request.
|
|
3478
3478
|
|
|
3479
3479
|
Example:
|
|
3480
3480
|
res = client.facebook.ads_search(country="US", query="nike", searchType="keyword_exact_phrase")
|
|
@@ -3562,7 +3562,7 @@ class AsyncFacebookNamespace:
|
|
|
3562
3562
|
List the Meta Ad Library ads a company is running by page ID or company name
|
|
3563
3563
|
(creative text, format, platforms, and run dates) with cursor pagination.
|
|
3564
3564
|
|
|
3565
|
-
Price: $0.
|
|
3565
|
+
Price: $0.0011 per request.
|
|
3566
3566
|
|
|
3567
3567
|
Example:
|
|
3568
3568
|
res = client.facebook.company_ads(pageId="15087023444", sortBy="recent")
|
|
@@ -852,7 +852,7 @@ class GoogleNamespace:
|
|
|
852
852
|
further, or use google.search_100 for up to 100 ranked results in one call,
|
|
853
853
|
which is cheaper past roughly 20 results.
|
|
854
854
|
|
|
855
|
-
Price: $0.
|
|
855
|
+
Price: $0.0005 per request.
|
|
856
856
|
|
|
857
857
|
Example:
|
|
858
858
|
res = client.google.search(gl="us", hl="en", limit=10, query="best coffee maker")
|
|
@@ -1141,7 +1141,7 @@ class AsyncGoogleNamespace:
|
|
|
1141
1141
|
further, or use google.search_100 for up to 100 ranked results in one call,
|
|
1142
1142
|
which is cheaper past roughly 20 results.
|
|
1143
1143
|
|
|
1144
|
-
Price: $0.
|
|
1144
|
+
Price: $0.0005 per request.
|
|
1145
1145
|
|
|
1146
1146
|
Example:
|
|
1147
1147
|
res = client.google.search(gl="us", hl="en", limit=10, query="best coffee maker")
|
|
@@ -343,7 +343,7 @@ class GoogleAdsNamespace:
|
|
|
343
343
|
domain or advertiser ID (creative ID, format, ad URL, and first/last shown
|
|
344
344
|
dates) with cursor pagination.
|
|
345
345
|
|
|
346
|
-
Price: $0.
|
|
346
|
+
Price: $0.0011 per request.
|
|
347
347
|
|
|
348
348
|
Example:
|
|
349
349
|
res = client.google_ads.company_ads(domain="lululemon.com")
|
|
@@ -460,7 +460,7 @@ class AsyncGoogleAdsNamespace:
|
|
|
460
460
|
domain or advertiser ID (creative ID, format, ad URL, and first/last shown
|
|
461
461
|
dates) with cursor pagination.
|
|
462
462
|
|
|
463
|
-
Price: $0.
|
|
463
|
+
Price: $0.0011 per request.
|
|
464
464
|
|
|
465
465
|
Example:
|
|
466
466
|
res = client.google_ads.company_ads(domain="lululemon.com")
|
|
@@ -332,7 +332,7 @@ class ThreadsNamespace:
|
|
|
332
332
|
Fetch a Threads user's public profile (bio, follower count, verification,
|
|
333
333
|
profile picture) by username.
|
|
334
334
|
|
|
335
|
-
Price: $0.
|
|
335
|
+
Price: $0.0011 per request.
|
|
336
336
|
|
|
337
337
|
Example:
|
|
338
338
|
res = client.threads.profile(username="zuck")
|
|
@@ -444,7 +444,7 @@ class AsyncThreadsNamespace:
|
|
|
444
444
|
Fetch a Threads user's public profile (bio, follower count, verification,
|
|
445
445
|
profile picture) by username.
|
|
446
446
|
|
|
447
|
-
Price: $0.
|
|
447
|
+
Price: $0.0011 per request.
|
|
448
448
|
|
|
449
449
|
Example:
|
|
450
450
|
res = client.threads.profile(username="zuck")
|
|
@@ -3657,7 +3657,7 @@ class TiktokNamespace:
|
|
|
3657
3657
|
track to read, tiktok.video_transcript_full transcribes the audio with
|
|
3658
3658
|
AnyAPI's own speech-to-text instead.
|
|
3659
3659
|
|
|
3660
|
-
Price: $0.
|
|
3660
|
+
Price: $0.0011 per request.
|
|
3661
3661
|
|
|
3662
3662
|
Example:
|
|
3663
3663
|
res = client.tiktok.video_transcript(url="https://www.tiktok.com/@washingtonpost/video/7609177768793787679")
|
|
@@ -4768,7 +4768,7 @@ class AsyncTiktokNamespace:
|
|
|
4768
4768
|
track to read, tiktok.video_transcript_full transcribes the audio with
|
|
4769
4769
|
AnyAPI's own speech-to-text instead.
|
|
4770
4770
|
|
|
4771
|
-
Price: $0.
|
|
4771
|
+
Price: $0.0011 per request.
|
|
4772
4772
|
|
|
4773
4773
|
Example:
|
|
4774
4774
|
res = client.tiktok.video_transcript(url="https://www.tiktok.com/@washingtonpost/video/7609177768793787679")
|
|
@@ -27,14 +27,14 @@ class YoutubeChannelInput(TypedDict, total=False):
|
|
|
27
27
|
allowFallbacks: NotRequired[bool]
|
|
28
28
|
"""Optional, default true. When false, only the sources listed in `source` may serve; the request is refused with no charge if none of them can. When true, the listed sources are tried first and any other source may serve after them, at the normal price. Default: true."""
|
|
29
29
|
channelId: NotRequired[str]
|
|
30
|
-
"""YouTube channel ID (UC...)."""
|
|
30
|
+
"""YouTube channel ID (UC...). Pass it directly when you have it: some sources accept only the ID and otherwise look up the handle first, which adds a step."""
|
|
31
31
|
handle: NotRequired[str]
|
|
32
32
|
"""YouTube channel handle."""
|
|
33
33
|
ignoreSources: NotRequired[list[str]]
|
|
34
34
|
"""Optional. Source ids to skip for this request, taken from this endpoint's `lanes[].source.id`. The cheapest remaining source serves and the price is that of the dearest remaining source. An id that does not serve this endpoint, or that is also in `source`, is rejected as invalid input with no charge; skipping every source is rejected the same way."""
|
|
35
35
|
preferLatencyUnderMs: NotRequired[int]
|
|
36
36
|
"""Optional; omit it and routing is unchanged, with the cheapest source serving. Prefer sources whose typical response time (median over the trailing 30 days, as published on this endpoint's lane health) is under this many milliseconds; among those, the cheapest serves. This can raise your price: when the cheapest source misses the target, a faster and dearer one serves, and you are quoted and charged its price. If no source is that fast the request is still served, by whichever source offers the best speed for its price - it is never refused for being slow. Sources we have not timed are tried last. This is a preference, not a guarantee: the median describes past requests and is not a ceiling on this one, and it excludes any wait this request itself asks for. On a paginated walk it applies to the first page only: later pages stay with the source that page chose, at the price it was quoted. Minimum: 1."""
|
|
37
|
-
requireFields: NotRequired[list[Literal["views"]]]
|
|
37
|
+
requireFields: NotRequired[list[Literal["handle", "links", "videos", "views"]]]
|
|
38
38
|
"""Optional; omit it and routing is unchanged, with the cheapest source serving. Name the output fields this request must be able to return, for example `views`, and it is served only by a source that returns every one of them. Fields you do not name are still returned whenever the serving source has them. This can raise your price: when the cheapest source cannot return a named field, a dearer source serves, and you are quoted and charged its price. A named field can still be absent on a record that genuinely lacks it. Naming a combination that no single source returns together is refused as invalid input, with no charge."""
|
|
39
39
|
source: NotRequired[list[str]]
|
|
40
40
|
"""Optional. Source ids to prefer, in order, taken from this endpoint's `lanes[].source.id` in /catalog or /apis. Omit it and the cheapest source serves, with automatic failover. Listed sources are tried first in the order given, then the others, unless `allowFallbacks` is false. A single source with `allowFallbacks` false is served only by that source at its price, quoted and charged exactly, with no failover. The price is that of the dearest source that may serve. An id that does not serve this endpoint is rejected as invalid input with no charge; a listed source that is not serving right now is refused with no charge, so omit `source` to be served by another. On a paginated walk, later pages must include the source that served page one, or omit `source`."""
|
|
@@ -413,6 +413,10 @@ class YoutubeChannelData(BaseModel):
|
|
|
413
413
|
handle: str | None = Field(
|
|
414
414
|
default=None, description='The channel\'s @handle, for example "@mkbhd".'
|
|
415
415
|
)
|
|
416
|
+
links: list[YoutubeChannelLink] | None = Field(
|
|
417
|
+
default=None,
|
|
418
|
+
description="The links the channel lists in the Links section of its About page, in the order shown. Empty when the channel lists none, and absent when the serving source does not report links; name `links` in requireFields to be served only by a source that does.",
|
|
419
|
+
)
|
|
416
420
|
subscribers: int
|
|
417
421
|
title: str = Field(
|
|
418
422
|
description="Populated whenever the provider has data for the entity."
|
|
@@ -427,6 +431,16 @@ class YoutubeChannelData(BaseModel):
|
|
|
427
431
|
)
|
|
428
432
|
|
|
429
433
|
|
|
434
|
+
class YoutubeChannelLink(BaseModel):
|
|
435
|
+
model_config = ConfigDict(extra="allow")
|
|
436
|
+
|
|
437
|
+
title: str | None = Field(
|
|
438
|
+
default=None,
|
|
439
|
+
description="The label the channel gave the link, when the serving source reports it.",
|
|
440
|
+
)
|
|
441
|
+
url: str = Field(description="The link's address, starting with https://.")
|
|
442
|
+
|
|
443
|
+
|
|
430
444
|
class YoutubeChannelCommunityPostsData(BaseModel):
|
|
431
445
|
model_config = ConfigDict(populate_by_name=True)
|
|
432
446
|
|
|
@@ -1326,7 +1340,7 @@ class YoutubeNamespace:
|
|
|
1326
1340
|
"""YouTube Channel
|
|
1327
1341
|
|
|
1328
1342
|
Fetch a YouTube channel's stats (subscribers, video count, total views,
|
|
1329
|
-
description) by handle or channel ID.
|
|
1343
|
+
description) and the links on its About page, by handle or channel ID.
|
|
1330
1344
|
|
|
1331
1345
|
Price: $0.0005 per request.
|
|
1332
1346
|
|
|
@@ -1831,7 +1845,7 @@ class YoutubeNamespace:
|
|
|
1831
1845
|
Fetch a YouTube video or Short's metadata (title, channel, views, likes,
|
|
1832
1846
|
duration, publish date) by URL or ID.
|
|
1833
1847
|
|
|
1834
|
-
Price: $0.
|
|
1848
|
+
Price: $0.0009 per request.
|
|
1835
1849
|
|
|
1836
1850
|
Example:
|
|
1837
1851
|
res = client.youtube.video(url="https://www.youtube.com/watch?v=dQw4w9WgXcQ")
|
|
@@ -1964,7 +1978,7 @@ class AsyncYoutubeNamespace:
|
|
|
1964
1978
|
"""YouTube Channel
|
|
1965
1979
|
|
|
1966
1980
|
Fetch a YouTube channel's stats (subscribers, video count, total views,
|
|
1967
|
-
description) by handle or channel ID.
|
|
1981
|
+
description) and the links on its About page, by handle or channel ID.
|
|
1968
1982
|
|
|
1969
1983
|
Price: $0.0005 per request.
|
|
1970
1984
|
|
|
@@ -2471,7 +2485,7 @@ class AsyncYoutubeNamespace:
|
|
|
2471
2485
|
Fetch a YouTube video or Short's metadata (title, channel, views, likes,
|
|
2472
2486
|
duration, publish date) by URL or ID.
|
|
2473
2487
|
|
|
2474
|
-
Price: $0.
|
|
2488
|
+
Price: $0.0009 per request.
|
|
2475
2489
|
|
|
2476
2490
|
Example:
|
|
2477
2491
|
res = client.youtube.video(url="https://www.youtube.com/watch?v=dQw4w9WgXcQ")
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|