semvec/pypi-packages huggingface dataset:
youtube-summarize 0.2.2
MCP server that fetches YouTube video transcripts and optionally summarizes them
Requires Python: >=3.13
Keywords: mcp, model-context-protocol, summarize, transcript, youtube

# youtube-summarize

MCP server that fetches YouTube video transcripts and optionally summarizes them.

![Demo — summarizing a YouTube video in Claude](assets/claude-usage-example.gif)

## Features

- **Fetch transcripts** in multiple formats (text, JSON, SRT, WebVTT, pretty-print)
- **Summarize videos** — returns transcript with instructions for the LLM to produce a summary
- **List available languages** for any video's transcripts
- **Flexible URL parsing** — accepts full YouTube URLs (`youtube.com/watch?v=`, `youtu.be/`, `youtube.com/embed/`, `youtube.com/shorts/`) or bare video IDs
- **Multi-language support** — request transcripts in specific languages with fallback priority

## Tools

### `get_transcript`

Fetch a YouTube video's transcript.

| Parameter | Type | Default | Description |
|-----------|------|---------|-------------|
| `url` | string | *required* | YouTube video URL or video ID |
| `languages` | string[] | `["en"]` | Preferred languages in priority order |
| `format` | string | `"text"` | Output format: `text`, `json`, `pretty`, `webvtt`, `srt` |
| `preserve_formatting` | boolean | `false` | Keep HTML formatting tags in the transcript |

### `summarize_transcript`

Fetch a transcript and return it with summarization instructions for the LLM client.

| Parameter | Type | Default | Description |
|-----------|------|---------|-------------|
| `url` | string | *required* | YouTube video URL or video ID |
| `prompt` | string | *(default prompt)* | Custom summarization instructions |
| `languages` | string[] | `["en"]` | Preferred languages in priority order |

### `list_transcripts`

List available transcript languages for a video.

| Parameter | Type | Default | Description |
|-----------|------|---------|-------------|
| `url` | string | *required* | YouTube video URL or video ID |

## Installation

### Quick start (recommended)

```bash
uvx youtube-summarize
```

### Claude Desktop

Add to your `claude_desktop_config.json`:

- macOS: `~/Library/Application Support/Claude/claude_desktop_config.json`
- Windows: `%APPDATA%\Claude\claude_desktop_config.json`

```json
{
  "mcpServers": {
    "youtube-summarize": {
      "command": "uvx",
      "args": ["youtube-summarize"]
    }
  }
}
```

### Claude Code

```bash
claude mcp add youtube-summarize -- uvx youtube-summarize
```

### Other MCP clients

Run the server over stdio:

```bash
uvx youtube-summarize
```

## Prerequisites

- Python 3.13+
- [uv](https://docs.astral.sh/uv/) package manager

## Development

```bash
# Install dependencies
uv sync

# Launch the MCP inspector (web UI for testing tools)
uv run mcp dev main.py
```

## License

MIT

---

mcp-name: io.github.zlatkoc/youtube-summarize
factorialhr 6.0.0
Python package for the api of FactorialHR
Requires Python: <3.15,>=3.11
Keywords: FactorialHR, HR

FactorialHR api python wrapper
==============================

This package provides a python wrapper to the `api of FactorialHR <https://apidoc.factorialhr.com/docs>`_.

The package currently supports the api version `v2026-01-01 <https://apidoc.factorialhr.com/v2026-01-01/docs/getting-started>`_.
The openapi schema can be found at https://api.factorialhr.com/oas

**I derived some types from the examples given. They might be incorrect. If you encounter any problems, please create an issue and/or contribute a fix.**

Disclaimer
----------

I am not affiliated, associated, authorized, endorsed by, or in any way officially connected with EVERYDAY SOFTWARE, S.L. or FactorialHR, or any of its subsidiaries or its affiliates. The official factorialhr.com website can be found at https://factorialhr.com/

Usage
-----

Get all employees:

.. code-block:: python

   import factorialhr

   authorizer = factorialhr.ApiKeyAuth('<api_key>')  # checkout other authorization methods
   async with factorialhr.ApiClient(auth=authorizer) as api:
       all_employees = await factorialhr.EmployeesEndpoint(api).all()  # fetches all employees. on big companies you might want to increase the timeout by using timeout=...

Get a dictionary with team id as key and a list of member as value:

.. code-block:: python

   import asyncio

   import factorialhr

   authorizer = factorialhr.AccessTokenAuth('<access_token>')  # checkout other authorization methods
   async with factorialhr.ApiClient(auth=authorizer) as api:
       employees_endpoint = factorialhr.EmployeesEndpoint(api)
       teams_endpoint = factorialhr.TeamsEndpoint(api)
       all_employees, all_teams = await asyncio.gather(employees_endpoint.all(), teams_endpoint.all())  # remember to increase the timeout if you have a lot of employees or teams
       employees_by_team_id = {team.id: [employee for employee in all_employees.data() if employee.id in team.employee_ids] for team in all_teams.data()}

Contribute
----------

Feel free to contribute! Please fork this repository, install the development dependencies with ``uv sync --dev``
and create pull request.