parafoxia
analytix
Python

A simple yet powerful SDK for the YouTube Analytics API.

Last updated Mar 11, 2026
44
Stars
9
Forks
5
Issues
0
Stars/day
Attention Score
65
Language breakdown
No language data available.
Files click to expand
README

#

analytix logo

A simple yet powerful SDK for the YouTube Analytics API.

PyPI - Version PyPI - Python Version PyPI - Implementation

Features

  • Pythonic syntax lets you feel right at home
  • Dynamic error handling saves hours of troubleshooting and makes sure only valid requests count toward your API quota
  • A clever interface allows you to make multiple requests across multiple sessions without reauthorising
  • Extra support enables you to export reports in a variety of filetypes and to a number of DataFrame formats
  • Easy enough for beginners, but powerful enough for advanced users

Installation

Installing analytix

To install the latest stable version of analytix, use the following command:

pip install analytix

You can also install the latest development version using the following command:

pip install git+https://github.com/parafoxia/analytix

You may need to prefix these commands with a call to the Python interpreter depending on your OS and Python configuration.

Dependencies

Below is a list of analytix's dependencies. Note that the minimum version assumes you're using CPython 3.8. The latest versions of each library are always supported.

| Name | Min. version | Required? | Usage | |-------------------|--------------|-----------|---------------------------------------------------------------| | urllib3 | 2.2.0 | Yes | Making HTTP requests | | jwt | 1.2.0 | No | Decoding JWT ID tokens (from v5.1) | | openpyxl | 3.0.0 | No | Exporting report data to Excel spreadsheets | | pandas | ~1.3.0 | No | Exporting report data to pandas DataFrames | | polars | 0.15.17 | No | Exporting report data to Polars DataFrames | | pyarrow | ~5.0.0 | No | Exporting report data to Apache Arrow tables and file formats |

OAuth authentication

All requests to the YouTube Analytics API need to be authorised through OAuth 2. In order to do this, you will need a Google Developers project with the YouTube Analytics API enabled. You can find instructions on how to do that in the API setup guide.

Once a project is set up, analytix handles authorisation — including token refreshing — for you.

More details regarding how and when refresh tokens expire can be found on the Google Identity documentation.

Usage

Retrieving reports

The following example creates a CSV file containing basic info for the 10 most viewed videos, from most to least viewed, in the US in 2022:

from datetime import date

from analytix import Client

client = Client("secrets.json") report = client.fetch_report( dimensions=("video",), filters={"country": "US"}, metrics=("estimatedMinutesWatched", "views", "likes", "comments"), sort_options=("-estimatedMinutesWatched",), start_date=date(2022, 1, 1), end_date=date(2022, 12, 31), max_results=10, ) report.to_csv("analytics.csv")

If you want to analyse this data using additional tools such as pandas, you can directly export the report as a DataFrame or table using the topandas(), toarrow(), and to_polars() methods of the report instance. You can also save the report as a .tsv, .json, .xlsx, .parquet, or .feather file.

There are more examples in the GitHub repository.

Fetching group information

You can also fetch groups and group items:

from analytix import Client

You can also use the client as context manager!

with Client("secrets.json") as client: groups = client.fetch_groups() groupitems = client.fetchgroup_items(groups[0].id)

Logging

If you want to see what analytix is doing, you can enable the packaged logger:

import analytix

analytix.enable_logging()

This defaults to showing all log messages of level INFO and above. To show more (or less) messages, pass a logging level as an argument.

Compatibility

CPython versions 3.8 through 3.14 and PyPy versions 3.9 through 3.11 are officially supported\*. CPython 3.15-dev is provisionally supported\*. Windows, MacOS, and Linux are all supported.

*For base analytix functionality; support cannot be guaranteed for functionality requiring external libraries.

Contributing

Contributions are very much welcome! To get started:

License

The analytix module for Python is licensed under the BSD 3-Clause License.

🔗 More in this category

© 2026 GitRepoTrend · parafoxia/analytix · Updated daily from GitHub