universal-mcp-applications 0.1.17__py3-none-any.whl → 0.1.33__py3-none-any.whl

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.

Potentially problematic release.


This version of universal-mcp-applications might be problematic. Click here for more details.

Files changed (143) hide show
  1. universal_mcp/applications/BEST_PRACTICES.md +166 -0
  2. universal_mcp/applications/ahrefs/README.md +3 -3
  3. universal_mcp/applications/airtable/README.md +3 -3
  4. universal_mcp/applications/airtable/app.py +0 -1
  5. universal_mcp/applications/apollo/app.py +0 -1
  6. universal_mcp/applications/asana/README.md +3 -3
  7. universal_mcp/applications/aws_s3/README.md +29 -0
  8. universal_mcp/applications/aws_s3/app.py +40 -39
  9. universal_mcp/applications/bill/README.md +249 -0
  10. universal_mcp/applications/browser_use/README.md +1 -0
  11. universal_mcp/applications/browser_use/__init__.py +0 -0
  12. universal_mcp/applications/browser_use/app.py +71 -0
  13. universal_mcp/applications/calendly/README.md +45 -45
  14. universal_mcp/applications/calendly/app.py +125 -125
  15. universal_mcp/applications/canva/README.md +35 -35
  16. universal_mcp/applications/canva/app.py +95 -99
  17. universal_mcp/applications/clickup/README.md +4 -4
  18. universal_mcp/applications/confluence/app.py +0 -1
  19. universal_mcp/applications/contentful/README.md +1 -2
  20. universal_mcp/applications/contentful/app.py +4 -5
  21. universal_mcp/applications/crustdata/README.md +3 -3
  22. universal_mcp/applications/domain_checker/README.md +2 -2
  23. universal_mcp/applications/domain_checker/app.py +11 -15
  24. universal_mcp/applications/e2b/README.md +4 -4
  25. universal_mcp/applications/e2b/app.py +4 -4
  26. universal_mcp/applications/elevenlabs/README.md +3 -77
  27. universal_mcp/applications/elevenlabs/app.py +18 -15
  28. universal_mcp/applications/exa/README.md +7 -7
  29. universal_mcp/applications/exa/app.py +17 -17
  30. universal_mcp/applications/falai/README.md +13 -12
  31. universal_mcp/applications/falai/app.py +34 -35
  32. universal_mcp/applications/figma/README.md +3 -3
  33. universal_mcp/applications/file_system/README.md +13 -0
  34. universal_mcp/applications/file_system/app.py +9 -9
  35. universal_mcp/applications/firecrawl/README.md +9 -9
  36. universal_mcp/applications/firecrawl/app.py +46 -46
  37. universal_mcp/applications/fireflies/README.md +14 -14
  38. universal_mcp/applications/fireflies/app.py +164 -57
  39. universal_mcp/applications/fpl/README.md +12 -12
  40. universal_mcp/applications/fpl/app.py +54 -55
  41. universal_mcp/applications/ghost_content/app.py +0 -1
  42. universal_mcp/applications/github/README.md +10 -10
  43. universal_mcp/applications/github/app.py +50 -52
  44. universal_mcp/applications/google_calendar/README.md +10 -10
  45. universal_mcp/applications/google_calendar/app.py +50 -49
  46. universal_mcp/applications/google_docs/README.md +14 -14
  47. universal_mcp/applications/google_docs/app.py +307 -233
  48. universal_mcp/applications/google_drive/README.md +54 -57
  49. universal_mcp/applications/google_drive/app.py +270 -261
  50. universal_mcp/applications/google_gemini/README.md +3 -14
  51. universal_mcp/applications/google_gemini/app.py +15 -18
  52. universal_mcp/applications/google_mail/README.md +20 -20
  53. universal_mcp/applications/google_mail/app.py +110 -109
  54. universal_mcp/applications/google_searchconsole/README.md +10 -10
  55. universal_mcp/applications/google_searchconsole/app.py +37 -37
  56. universal_mcp/applications/google_sheet/README.md +25 -25
  57. universal_mcp/applications/google_sheet/app.py +270 -266
  58. universal_mcp/applications/hashnode/README.md +6 -3
  59. universal_mcp/applications/hashnode/app.py +174 -25
  60. universal_mcp/applications/http_tools/README.md +5 -5
  61. universal_mcp/applications/http_tools/app.py +10 -11
  62. universal_mcp/applications/hubspot/api_segments/__init__.py +0 -0
  63. universal_mcp/applications/hubspot/api_segments/api_segment_base.py +54 -0
  64. universal_mcp/applications/hubspot/api_segments/crm_api.py +7337 -0
  65. universal_mcp/applications/hubspot/api_segments/marketing_api.py +1467 -0
  66. universal_mcp/applications/hubspot/app.py +2 -15
  67. universal_mcp/applications/jira/app.py +0 -1
  68. universal_mcp/applications/klaviyo/README.md +0 -36
  69. universal_mcp/applications/linkedin/README.md +18 -4
  70. universal_mcp/applications/linkedin/app.py +763 -162
  71. universal_mcp/applications/mailchimp/README.md +3 -3
  72. universal_mcp/applications/markitdown/app.py +10 -5
  73. universal_mcp/applications/ms_teams/README.md +31 -31
  74. universal_mcp/applications/ms_teams/app.py +151 -151
  75. universal_mcp/applications/neon/README.md +3 -3
  76. universal_mcp/applications/onedrive/README.md +24 -0
  77. universal_mcp/applications/onedrive/__init__.py +1 -0
  78. universal_mcp/applications/onedrive/app.py +338 -0
  79. universal_mcp/applications/openai/README.md +18 -17
  80. universal_mcp/applications/openai/app.py +40 -39
  81. universal_mcp/applications/outlook/README.md +9 -9
  82. universal_mcp/applications/outlook/app.py +307 -225
  83. universal_mcp/applications/perplexity/README.md +4 -4
  84. universal_mcp/applications/perplexity/app.py +4 -4
  85. universal_mcp/applications/posthog/README.md +128 -127
  86. universal_mcp/applications/reddit/README.md +21 -124
  87. universal_mcp/applications/reddit/app.py +51 -68
  88. universal_mcp/applications/resend/README.md +29 -29
  89. universal_mcp/applications/resend/app.py +116 -117
  90. universal_mcp/applications/rocketlane/app.py +0 -1
  91. universal_mcp/applications/scraper/README.md +7 -4
  92. universal_mcp/applications/scraper/__init__.py +1 -1
  93. universal_mcp/applications/scraper/app.py +341 -103
  94. universal_mcp/applications/semrush/README.md +3 -0
  95. universal_mcp/applications/serpapi/README.md +3 -3
  96. universal_mcp/applications/serpapi/app.py +14 -14
  97. universal_mcp/applications/sharepoint/README.md +19 -0
  98. universal_mcp/applications/sharepoint/app.py +285 -173
  99. universal_mcp/applications/shopify/app.py +0 -1
  100. universal_mcp/applications/shortcut/README.md +3 -3
  101. universal_mcp/applications/slack/README.md +23 -0
  102. universal_mcp/applications/slack/app.py +79 -48
  103. universal_mcp/applications/spotify/README.md +3 -3
  104. universal_mcp/applications/supabase/README.md +3 -3
  105. universal_mcp/applications/tavily/README.md +4 -4
  106. universal_mcp/applications/tavily/app.py +4 -4
  107. universal_mcp/applications/twilio/README.md +15 -0
  108. universal_mcp/applications/twitter/README.md +92 -89
  109. universal_mcp/applications/twitter/api_segments/compliance_api.py +13 -15
  110. universal_mcp/applications/twitter/api_segments/dm_conversations_api.py +20 -20
  111. universal_mcp/applications/twitter/api_segments/dm_events_api.py +12 -12
  112. universal_mcp/applications/twitter/api_segments/likes_api.py +12 -12
  113. universal_mcp/applications/twitter/api_segments/lists_api.py +37 -39
  114. universal_mcp/applications/twitter/api_segments/spaces_api.py +24 -24
  115. universal_mcp/applications/twitter/api_segments/trends_api.py +4 -4
  116. universal_mcp/applications/twitter/api_segments/tweets_api.py +105 -105
  117. universal_mcp/applications/twitter/api_segments/usage_api.py +4 -4
  118. universal_mcp/applications/twitter/api_segments/users_api.py +136 -136
  119. universal_mcp/applications/twitter/app.py +15 -11
  120. universal_mcp/applications/whatsapp/README.md +12 -12
  121. universal_mcp/applications/whatsapp/app.py +66 -67
  122. universal_mcp/applications/whatsapp/audio.py +39 -35
  123. universal_mcp/applications/whatsapp/whatsapp.py +176 -154
  124. universal_mcp/applications/whatsapp_business/README.md +23 -23
  125. universal_mcp/applications/whatsapp_business/app.py +92 -92
  126. universal_mcp/applications/yahoo_finance/README.md +17 -0
  127. universal_mcp/applications/yahoo_finance/__init__.py +1 -0
  128. universal_mcp/applications/yahoo_finance/app.py +300 -0
  129. universal_mcp/applications/youtube/README.md +46 -46
  130. universal_mcp/applications/youtube/app.py +208 -195
  131. universal_mcp/applications/zenquotes/README.md +1 -1
  132. universal_mcp/applications/zenquotes/__init__.py +2 -0
  133. universal_mcp/applications/zenquotes/app.py +5 -5
  134. {universal_mcp_applications-0.1.17.dist-info → universal_mcp_applications-0.1.33.dist-info}/METADATA +5 -90
  135. {universal_mcp_applications-0.1.17.dist-info → universal_mcp_applications-0.1.33.dist-info}/RECORD +137 -128
  136. universal_mcp/applications/replicate/README.md +0 -18
  137. universal_mcp/applications/replicate/__init__.py +0 -1
  138. universal_mcp/applications/replicate/app.py +0 -493
  139. universal_mcp/applications/unipile/README.md +0 -28
  140. universal_mcp/applications/unipile/__init__.py +0 -1
  141. universal_mcp/applications/unipile/app.py +0 -827
  142. {universal_mcp_applications-0.1.17.dist-info → universal_mcp_applications-0.1.33.dist-info}/WHEEL +0 -0
  143. {universal_mcp_applications-0.1.17.dist-info → universal_mcp_applications-0.1.33.dist-info}/licenses/LICENSE +0 -0
@@ -0,0 +1,300 @@
1
+ from typing import Any
2
+
3
+ import yfinance as yf
4
+ from universal_mcp.applications.application import APIApplication
5
+ from universal_mcp.integrations import Integration
6
+
7
+
8
+ class YahooFinanceApp(APIApplication):
9
+ """
10
+ Application for interacting with Yahoo Finance data using yfinance library.
11
+ Provides tools to retrieve stock information, historical data, news, and financial statements.
12
+ """
13
+
14
+ def __init__(self, integration: Integration | None = None, **kwargs) -> None:
15
+ super().__init__(name="yahoo_finance", integration=integration, **kwargs)
16
+
17
+ def get_stock_info(self, symbol: str) -> dict[str, Any]:
18
+ """
19
+ Gets real-time stock information including current price, market cap, financial ratios, and company details.
20
+
21
+ Args:
22
+ symbol: Stock ticker symbol (e.g., 'AAPL', 'GOOGL', 'MSFT')
23
+
24
+ Returns:
25
+ Complete dictionary with all available stock data fields from Yahoo Finance
26
+
27
+ Raises:
28
+ ValueError: Invalid or empty symbol
29
+ KeyError: Stock symbol not found
30
+ ConnectionError: Network or API issues
31
+
32
+ Tags:
33
+ stock, info, real-time, price, financials, company-data, important
34
+ """
35
+ if not symbol:
36
+ raise ValueError("Stock symbol cannot be empty")
37
+
38
+ symbol = symbol.upper().strip()
39
+ ticker = yf.Ticker(symbol)
40
+
41
+ info = ticker.info
42
+ if not info or info.get("regularMarketPrice") is None:
43
+ raise KeyError(f"Stock symbol '{symbol}' not found or invalid")
44
+
45
+ return info
46
+
47
+ def get_stock_history(
48
+ self,
49
+ symbol: str,
50
+ period: str = "1mo",
51
+ interval: str = "1d",
52
+ start_date: str | None = None,
53
+ end_date: str | None = None,
54
+ ) -> dict:
55
+ """
56
+ Gets historical price data for a stock with OHLCV data, dividends, and stock splits.
57
+
58
+ Args:
59
+ symbol: Stock ticker symbol (e.g., 'AAPL', 'GOOGL', 'MSFT')
60
+ period: Time period ('1d', '5d', '1mo', '3mo', '6mo', '1y', '2y', '5y', '10y', 'ytd', 'max')
61
+ interval: Data interval ('1m', '2m', '5m', '15m', '30m', '60m', '90m', '1h', '1d', '5d', '1wk', '1mo', '3mo')
62
+ start_date: Start date in 'YYYY-MM-DD' format (overrides period)
63
+ end_date: End date in 'YYYY-MM-DD' format (used with start_date)
64
+
65
+ Returns:
66
+ Dictionary with historical stock data, dates as string keys
67
+
68
+ Tags:
69
+ stock, history, ohlcv, price-data, time-series, important
70
+ """
71
+ if not symbol:
72
+ raise ValueError("Stock symbol cannot be empty")
73
+
74
+ symbol = symbol.upper().strip()
75
+ ticker = yf.Ticker(symbol)
76
+
77
+ df = ticker.history(
78
+ period=period, interval=interval, start=start_date, end=end_date
79
+ )
80
+
81
+ try:
82
+ data = df.to_dict("index") # type: ignore
83
+ if data:
84
+ converted_data = {}
85
+ for key, value in data.items():
86
+ if hasattr(key, 'strftime'):
87
+ converted_key = key.strftime('%Y-%m-%d')
88
+ else:
89
+ converted_key = str(key)
90
+ converted_data[converted_key] = value
91
+ return converted_data
92
+ return data
93
+ except:
94
+ return {}
95
+
96
+ def get_stock_news(self, symbol: str, limit: int = 10) -> list[Any]:
97
+ """
98
+ Gets latest news articles for a stock from Yahoo Finance.
99
+
100
+ Args:
101
+ symbol: Stock ticker symbol (e.g., 'AAPL', 'GOOGL', 'MSFT')
102
+ limit: Maximum number of articles to return (1-50). Defaults to 10
103
+
104
+ Returns:
105
+ Raw list of news articles from Yahoo Finance
106
+
107
+ Tags:
108
+ stock, news, articles, sentiment, important
109
+ """
110
+ if not symbol:
111
+ raise ValueError("Stock symbol cannot be empty")
112
+
113
+ symbol = symbol.upper().strip()
114
+ ticker = yf.Ticker(symbol)
115
+
116
+ news = ticker.news
117
+ return news[:limit] if news else []
118
+
119
+ def get_financial_statements(
120
+ self, symbol: str, statement_type: str = "income"
121
+ ) -> dict:
122
+ """
123
+ Gets financial statements for a stock from Yahoo Finance.
124
+
125
+ Args:
126
+ symbol: Stock ticker symbol (e.g., 'AAPL', 'GOOGL', 'MSFT')
127
+ statement_type: Type of statement ('income', 'balance', 'cashflow', 'earnings'). Defaults to 'income'
128
+
129
+ Returns:
130
+ Dictionary with financial statement data
131
+
132
+ Tags:
133
+ stock, financial-statements, earnings, important
134
+ """
135
+ if not symbol:
136
+ raise ValueError("Stock symbol cannot be empty")
137
+
138
+ symbol = symbol.upper().strip()
139
+ ticker = yf.Ticker(symbol)
140
+
141
+ if statement_type == "income":
142
+ df = ticker.income_stmt
143
+ elif statement_type == "balance":
144
+ df = ticker.balance_sheet
145
+ elif statement_type == "cashflow":
146
+ df = ticker.cashflow
147
+ elif statement_type == "earnings":
148
+ df = ticker.earnings
149
+ else:
150
+ df = ticker.income_stmt
151
+
152
+ try:
153
+ data = df.to_dict("dict") # type: ignore
154
+ if data:
155
+ converted_data = {}
156
+ for key, value in data.items():
157
+ if hasattr(key, 'strftime'):
158
+ converted_key = key.strftime('%Y-%m-%d')
159
+ else:
160
+ converted_key = str(key)
161
+ converted_data[converted_key] = value
162
+ return converted_data
163
+ return data
164
+ except:
165
+ return {}
166
+
167
+ def get_stock_recommendations(
168
+ self, symbol: str, rec_type: str = "recommendations"
169
+ ) -> list[dict]:
170
+ """
171
+ Gets analyst recommendations for a stock from Yahoo Finance.
172
+
173
+ Args:
174
+ symbol: Stock ticker symbol (e.g., 'AAPL', 'GOOGL', 'MSFT')
175
+ rec_type: Type of recommendation data ('recommendations', 'upgrades_downgrades'). Defaults to 'recommendations'
176
+
177
+ Returns:
178
+ List of dictionaries with analyst recommendation data
179
+
180
+ Tags:
181
+ stock, recommendations, analyst-ratings, important
182
+ """
183
+ if not symbol:
184
+ raise ValueError("Stock symbol cannot be empty")
185
+
186
+ symbol = symbol.upper().strip()
187
+ ticker = yf.Ticker(symbol)
188
+
189
+ if rec_type == "upgrades_downgrades":
190
+ df = ticker.upgrades_downgrades
191
+ else:
192
+ df = ticker.recommendations
193
+
194
+ try:
195
+ return df.to_dict("records") # type: ignore
196
+ except:
197
+ return []
198
+
199
+ def search(
200
+ self,
201
+ query: str,
202
+ max_results: int = 10,
203
+ news_count: int = 5,
204
+ include_research: bool = False,
205
+ ) -> dict[str, Any]:
206
+ """
207
+ Search Yahoo Finance for quotes, news, and research using yfinance Search.
208
+
209
+ Args:
210
+ query: Search query (company name, ticker symbol, or keyword)
211
+ max_results: Maximum number of quote results to return. Defaults to 10
212
+ news_count: Number of news articles to return. Defaults to 5
213
+ include_research: Whether to include research data. Defaults to False
214
+
215
+ Returns:
216
+ Dictionary containing quotes, news, and optionally research data
217
+
218
+ Tags:
219
+ search, quotes, news, research, important
220
+ """
221
+ if not query:
222
+ raise ValueError("Search query cannot be empty")
223
+
224
+ search = yf.Search(
225
+ query,
226
+ max_results=max_results,
227
+ news_count=news_count,
228
+ include_research=include_research,
229
+ )
230
+
231
+ result = {}
232
+ for attr in dir(search):
233
+ if not attr.startswith("_"):
234
+ try:
235
+ value = getattr(search, attr)
236
+ if not callable(value):
237
+ result[attr] = value
238
+ except:
239
+ continue
240
+
241
+ return result
242
+
243
+ def lookup_ticker(
244
+ self, query: str, lookup_type: str = "all", count: int = 25
245
+ ) -> list[dict]:
246
+ """
247
+ Look up ticker symbols by type using yfinance Lookup.
248
+
249
+ Args:
250
+ query: Search query for ticker lookup
251
+ lookup_type: Type of lookup ('all', 'stock', 'mutualfund', 'etf', 'index', 'future', 'currency', 'cryptocurrency'). Defaults to 'all'
252
+ count: Maximum number of results to return. Defaults to 25
253
+
254
+ Returns:
255
+ List of dictionaries with ticker lookup results
256
+
257
+ Tags:
258
+ lookup, ticker, symbols, important
259
+ """
260
+ if not query:
261
+ raise ValueError("Lookup query cannot be empty")
262
+
263
+ try:
264
+ lookup = yf.Lookup(query)
265
+
266
+ if lookup_type == "stock":
267
+ results = lookup.get_stock(count=count)
268
+ elif lookup_type == "mutualfund":
269
+ results = lookup.get_mutualfund(count=count)
270
+ elif lookup_type == "etf":
271
+ results = lookup.get_etf(count=count)
272
+ elif lookup_type == "index":
273
+ results = lookup.get_index(count=count)
274
+ elif lookup_type == "future":
275
+ results = lookup.get_future(count=count)
276
+ elif lookup_type == "currency":
277
+ results = lookup.get_currency(count=count)
278
+ elif lookup_type == "cryptocurrency":
279
+ results = lookup.get_cryptocurrency(count=count)
280
+ else: # default to 'all'
281
+ results = lookup.get_all(count=count)
282
+
283
+ try:
284
+ return results.to_dict("records") # type: ignore
285
+ except:
286
+ return []
287
+
288
+ except Exception as e:
289
+ return [{"query": query, "error": f"Lookup failed: {str(e)}"}]
290
+
291
+ def list_tools(self):
292
+ return [
293
+ self.get_stock_info,
294
+ self.get_stock_history,
295
+ self.get_stock_news,
296
+ self.get_financial_statements,
297
+ self.get_stock_recommendations,
298
+ self.search,
299
+ self.lookup_ticker,
300
+ ]
@@ -9,49 +9,49 @@ This is automatically generated from OpenAPI schema for the YoutubeApp API.
9
9
 
10
10
  | Tool | Description |
11
11
  |------|-------------|
12
- | `get_jobs_job_reports` | Retrieves job reports for a specified job based on provided filters and parameters. |
13
- | `get_jobs_job_reports_report` | Retrieves a specific report associated with a job using the provided job and report identifiers. |
14
- | `delete_jobs_job` | Deletes a job with the specified ID, optionally acting on behalf of a content owner. |
15
- | `get_jobs` | Retrieves a list of jobs from the server with optional filtering by query parameters. |
16
- | `get_media_resource_name` | Retrieves a media resource by name and returns its JSON representation. |
17
- | `get_reporttypes` | Retrieves a paginated list of report types from the API with optional filtering. |
18
- | `delete_captions` | Deletes specified captions from a YouTube resource and returns the API response. |
19
- | `get_captions` | Retrieves caption tracks for a specified video ID from a remote API, supporting optional query parameters for request customization. |
20
- | `delete_comments` | Deletes a comment or comments from the server based on the specified ID. |
21
- | `add_comments_mark_as_spam` | Marks a comment as spam by sending a POST request to the API endpoint. |
22
- | `add_comments_set_moderation_status` | Sets the moderation status for a comment and optionally bans the author through a POST request to a defined endpoint. |
23
- | `delete_live_broadcasts` | Deletes specified live broadcasts using query parameters to filter requests. |
24
- | `add_live_broadcasts_bind` | Binds a live broadcast to a stream on YouTube, using specified parameters for authentication and identification. |
25
- | `add_live_broadcasts_control` | Controls a live broadcast by sending a POST request with specified parameters. |
26
- | `add_live_broadcasts_transition` | Transitions a live broadcast to a specified status for a given broadcast ID via API. |
27
- | `delete_live_chat_bans` | Deletes a live chat ban identified by the specified ID from the server. |
28
- | `delete_live_chat_messages` | Deletes live chat messages based on the specified message ID. |
29
- | `delete_live_chat_moderators` | Deletes a live chat moderator by ID using the specified endpoint. |
30
- | `delete_videos` | Deletes specified videos from a video platform using API endpoints. |
31
- | `get_videos_get_rating` | Retrieves the rating of a video using its ID and optional content owner specification. |
32
- | `add_videos_rate` | Submits a rating for a video on the server using the provided video ID and rating value. |
33
- | `add_videos_report_abuse` | Sends an abuse report for videos via the YouTube API, typically used to flag inappropriate content. |
34
- | `add_watermarks_set` | Sets watermarks on a specified YouTube channel using optional content owner credentials. |
35
- | `add_watermarks_unset` | Removes watermarks from a YouTube channel specified by channel ID. |
36
- | `get_activities` | Retrieve YouTube channel activities based on specified filters and parameters. |
37
- | `add_channel_banners_insert` | Inserts a new channel banner for a YouTube channel using the YouTube Data API. |
38
- | `delete_channel_sections` | Deletes one or more channel sections from the specified platform using the provided identifiers. |
39
- | `get_channels` | Retrieves YouTube channels based on specified parameters. |
40
- | `get_comment_threads` | Retrieve YouTube comment threads based on specified filters and pagination parameters. |
41
- | `get_fanfundingevents` | Retrieves fan funding events based on specified filter criteria. |
42
- | `get_guecategories` | Fetches guide categories from a remote service based on specified parameters. |
43
- | `get_languages` | Fetches a list of supported languages from the internationalization API, returning localized names when specified. |
44
- | `get_regions` | Retrieves a list of i18n regions from an API endpoint. |
45
- | `delete_livestreams` | Deletes a YouTube livestream resource using the YouTube Data API with optional filtering parameters. |
46
- | `delete_play_list_items` | Deletes playlist items identified by the given ID or on behalf of the specified content owner. |
47
- | `delete_playlists` | Deletes playlists via the YouTube Data API based on specified criteria. |
48
- | `get_search` | Submits a search query to the YouTube Data API with optional filters. |
49
- | `get_sponsors` | Fetches a list of sponsors from a server with optional filtering and pagination. |
50
- | `delete_subscriptions` | Deletes one or all subscriptions by sending a DELETE request to the API endpoint. |
51
- | `get_superchatevents` | Fetches a list of super chat events from the YouTube API with optional filtering parameters. |
52
- | `add_thumbnails_set` | Sets a thumbnail for a specified video on behalf of a content owner using the YouTube API. |
53
- | `get_video_abuse_report_reasons` | Fetches video abuse report reasons with optional localization and response filtering. |
54
- | `get_veocategories` | Fetches video categories from an external API using specified query parameters and returns the parsed JSON response. |
55
- | `delete_groupitems` | Deletes group items based on the provided parameters. |
56
- | `delete_groups` | Deletes specified groups via API, optionally on behalf of a content owner. |
57
- | `get_reports` | Fetches and returns report data based on specified filtering, sorting, and range criteria. |
12
+ | `list_job_reports` | Retrieves a paginated list of all reports for a specific job ID, with options for filtering by date. Unlike `get_jobs_job_reports_report`, which fetches a single report by its ID, this function returns a collection of reports associated with a job. |
13
+ | `get_job_report` | Fetches a single, specific report identified by its `reportId` from within a given `jobId`. This retrieves an individual record, distinguishing it from `get_jobs_job_reports`, which returns a list of reports for a job. The request can be made on behalf of a content owner. |
14
+ | `delete_job` | Deletes a specific job resource using its unique `jobId`, optionally on behalf of a content owner. This action permanently removes the job itself, differentiating it from functions that only retrieve or manage job reports. |
15
+ | `list_jobs` | Retrieves a paginated list of asynchronous jobs from the YouTube Reporting API. Supports filtering by content owner and including system-managed jobs. This function lists multiple jobs, distinct from `get_jobs_job_reports` which retrieves reports for a single job. |
16
+ | `download_report_media` | Downloads the content of a bulk data report from the YouTube Reporting API by its unique `resourceName`. This function retrieves the actual media file generated by a reporting job, distinct from functions that only fetch report metadata. |
17
+ | `get_reporttypes` | Retrieves a list of available report types from the YouTube Reporting API, supporting pagination and filtering. This function returns metadata about what kinds of reports can be generated, distinct from functions like `get_reports` that fetch actual report content. |
18
+ | `delete_captions` | Deletes a specific YouTube caption resource using its unique ID, with optional delegation for content owners. This management function removes the entire caption track, unlike `get_captions` which only retrieves the transcript text for a given video ID. |
19
+ | `get_transcript_text` | Fetches the full text transcript for a YouTube video using its ID. Unlike other methods using the official API, this function utilizes the `youtube-transcript-api` library to extract and concatenate all caption snippets into a single, timestamp-free string of the video's spoken content. |
20
+ | `delete_comments` | Permanently removes a specific comment identified by its unique ID via a DELETE request. Unlike moderation functions like `add_comments_mark_as_spam`, which only alter a comment's state, this action is irreversible and deletes the resource. An `id` is required to specify the target comment. |
21
+ | `mark_comment_as_spam` | Marks a specified YouTube comment as spam via a POST request to the API. This moderation action is distinct from deleting comments (`delete_comments`) or setting other statuses like 'approved' or 'rejected' (`add_comments_set_moderation_status`). |
22
+ | `set_comment_moderation_status` | Sets the moderation status (e.g., 'approved', 'rejected') for specified comments and can optionally ban the author. Unlike `add_comments_mark_as_spam`, this function allows for various moderation states, providing more granular control over comment management. |
23
+ | `delete_live_broadcasts` | Deletes a YouTube live broadcast event by its unique ID via the API. This request can be made on behalf of a content owner or channel. It targets the `/liveBroadcasts` endpoint, distinguishing it from `delete_livestreams` which manages the actual content stream. |
24
+ | `bind_live_broadcast_to_stream` | Binds a YouTube live broadcast to a video stream using their respective IDs. This action associates the broadcast's metadata with the content stream, optionally performing the action on behalf of a content owner, facilitating the link between a planned event and its live video feed. |
25
+ | `control_live_broadcast` | Sends control commands to a YouTube live broadcast, identified by its ID. It can display a slate or schedule an action using a time offset. Unlike `add_live_broadcasts_transition`, which alters broadcast status (e.g., 'live'), this function manages in-stream state. |
26
+ | `transition_live_broadcast` | Changes a YouTube live broadcast's status (e.g., making it 'live' or 'complete') by posting to the API's transition endpoint. This function alters the broadcast's lifecycle state, distinct from other control actions like binding it to a stream, and returns the API's JSON response. |
27
+ | `delete_live_chat_ban` | Deletes a specific YouTube live chat ban using its unique ID. It sends a DELETE request to the `/liveChat/bans` endpoint to revoke the ban, allowing the user to participate in the chat again. |
28
+ | `delete_live_chat_message` | Deletes a specific YouTube live chat message identified by its unique ID. This function targets the `/liveChat/messages` endpoint, distinguishing it from `delete_live_chat_bans` and `delete_live_chat_moderators`, which manage different aspects of a live chat. |
29
+ | `delete_live_chat_moderators` | Deletes a specific YouTube live chat moderator using their unique ID. This function sends a DELETE request to the `/liveChat/moderators` API endpoint and returns the server's JSON response, confirming the successful removal or detailing errors. The moderator ID is a required parameter for this action. |
30
+ | `delete_videos` | Deletes a specified YouTube video using its unique ID. The operation can be performed on behalf of a content owner by sending an HTTP DELETE request to the `/videos` endpoint. It's distinct from other video functions that only modify or retrieve metadata, like rating or abuse reports. |
31
+ | `get_video_ratings` | Retrieves the authenticated user's rating (e.g., 'like', 'dislike') for specified videos. This function fetches existing rating data, distinct from `add_videos_rate` which submits a new rating, and can be performed on behalf of a content owner. |
32
+ | `rate_video` | Submits a rating (e.g., 'like', 'dislike') for a video specified by its unique ID. This function sends a POST request to the YouTube API's `/videos/rate` endpoint and returns the server's JSON response upon successful submission. |
33
+ | `report_video_for_abuse` | Reports a video for abuse via a POST request to the YouTube API. An optional parameter allows a content owner to submit the report on behalf of their account, flagging potentially inappropriate content for review by YouTube. |
34
+ | `set_channel_watermark` | Sets a branding watermark on a specified YouTube channel. The operation targets the channel using its ID and can be executed on behalf of a content owner. This function contrasts with `add_watermarks_unset`, which removes the watermark. |
35
+ | `unset_channel_watermark` | Removes the branding watermark for a specified YouTube channel via an API POST request. This operation, the inverse of `add_watermarks_set`, can be executed on behalf of a content owner to unset the channel's current watermark. |
36
+ | `get_activities` | Retrieves a list of YouTube activities, such as video uploads or social posts. Supports filtering by channel, authenticated user's feed, publication date, and region. The function also handles pagination to navigate through large result sets and returns the JSON response from the API. |
37
+ | `insert_channel_banner` | Uploads and sets a new banner image for a specified YouTube channel. This function makes a POST request to the `/channelBanners/insert` endpoint, optionally on behalf of a content owner, and returns details of the newly created banner. |
38
+ | `delete_channel_sections` | Deletes a YouTube channel section by its unique ID via an API request. The operation can be performed on behalf of a content owner for delegated management, returning a JSON response upon success or raising an HTTPError for failures like invalid IDs or insufficient permissions. |
39
+ | `list_channels` | Retrieves channel data from the YouTube API using specific filters like ID, username, or ownership status (`mine`, `managedByMe`). The function supports pagination and localization, returning a JSON object containing details for the targeted channels. |
40
+ | `get_comment_threads` | Retrieves YouTube comment threads using filters like channel ID, video ID, or search terms. It supports pagination and sorting, serving as the primary method for fetching comment data, distinct from other functions in the script that moderate or delete individual comments. |
41
+ | `get_fanfundingevents` | Fetches a list of fan funding events from the YouTube API for the authenticated user's channel. Supports pagination, localization, and partial responses to retrieve customized event data like Super Chat or Super Stickers based on specified filter criteria and response parts. |
42
+ | `get_guide_categories` | Retrieves a list of official YouTube guide categories (e.g., Music, Sports). This function queries the `/guideCategories` endpoint, allowing results to be filtered by ID or region and localized for a specific language. These are distinct from the categories assigned to individual videos. |
43
+ | `get_i18n_languages` | Retrieves a list of supported internationalization (i18n) languages from the YouTube API's `/i18nLanguages` endpoint. It can optionally localize the language names in the response. This function is distinct from `get_regions`, which fetches supported geographical regions. |
44
+ | `get_i18n_regions` | Fetches a list of geographic regions supported by the YouTube API for content localization. It can localize region names using the 'hl' parameter. This is distinct from get_languages, which retrieves supported languages, not geographic areas. |
45
+ | `delete_livestreams` | Deletes one or more YouTube livestreams by ID via the `/liveStreams` API endpoint, optionally on behalf of a content owner. This function is distinct from `delete_live_broadcasts`, which targets a different live video resource, and returns the server's JSON response upon successful deletion. |
46
+ | `delete_playlist_items` | Deletes one or more YouTube playlist items by their unique IDs. The operation can be performed on behalf of a content owner for delegated authorization, sending a DELETE request to the `/playlistItems` endpoint and returning the server's response. |
47
+ | `delete_playlists` | Deletes a YouTube playlist by its unique ID via a DELETE request to the API. The operation can be performed on behalf of a specific content owner for delegated management. This function targets the entire playlist, distinct from `delete_play_list_items` which removes individual videos from a playlist. |
48
+ | `get_search` | Performs a versatile search on YouTube for videos, channels, or playlists. This function supports extensive filters, including keywords, publication dates, location, and specific video attributes like category or duration, returning a paginated list of matching resources from the YouTube Data API. |
49
+ | `list_sponsors` | Retrieves a list of sponsors for the authenticated user's YouTube channel. This function supports filtering, pagination, and specifying which resource parts to include in the response, allowing for flexible and customized data fetching of sponsor information. |
50
+ | `delete_subscriptions` | Deletes a specific YouTube channel subscription identified by its unique ID. This function sends a DELETE request to the `/subscriptions` API endpoint and returns the server's JSON response, confirming the operation's success or failure. |
51
+ | `get_super_chat_events` | Retrieves a paginated list of Super Chat events from the YouTube Data API. Allows for localization and specifying which resource parts to include in the response. This function is distinct from `get_fanfundingevents`, which fetches a different type of monetary contribution event. |
52
+ | `set_video_thumbnail` | Sets a custom thumbnail for a specified YouTube video via a POST request to the `/thumbnails/set` API endpoint. The operation can be performed on behalf of a content owner for delegated management of video assets. |
53
+ | `get_video_abuse_report_reasons` | Retrieves a list of valid reasons (e.g., spam, hate speech) for reporting abusive video content. Supports response localization using a language code (`hl`) and allows filtering which parts of the reason resource (e.g., ID, snippet) are returned, providing metadata before submitting a report. |
54
+ | `get_video_categories` | Retrieves official YouTube video categories used for classifying uploaded videos, allowing filtering by ID, region, or language. This is distinct from `get_guecategories`, which fetches channel browsing guides, not categories for individual video uploads. |
55
+ | `delete_group_items` | Deletes specified items from a YouTube Analytics group via an API request. An item can be targeted by its unique ID, and the action can be performed on behalf of a content owner. This function is distinct from `delete_groups`, which removes the entire group. |
56
+ | `delete_groups` | Deletes a YouTube group by its ID via an API request, optionally on behalf of a content owner. Unlike `delete_groupitems`, which only removes an item from a group, this function deletes the entire group entity. |
57
+ | `get_analytics_report` | Queries the YouTube Analytics API for performance reports, allowing customization via metrics, dimensions, and filters. Unlike `get_jobs_job_reports` which manages bulk report jobs, this function fetches analytical data directly, providing on-demand insights into channel or content performance. |