hamel

Personal utilities library

A collection of personal utilities for various tasks, including: - Working with Google’s Gemini API for text generation and media analysis - Processing YouTube videos and local MP4 files for transcripts and chapter generation - Creating annotated blog posts from technical talks

Usage

Installation

Install latest from the GitHub repository:

$ pip install git+https://github.com/hamelsmu/hamel.git

or from pypi

$ pip install hamel

Note: For MP4 video transcription, you’ll also need: - FFmpeg: brew install ffmpeg (macOS) or apt-get install ffmpeg (Ubuntu) - The installation will include openai-whisper automatically

Documentation

Documentation can be found hosted on this GitHub repository’s pages.

Available Utilities

Gemini API (hamel.gem)

Simple interface for Google’s Gemini API supporting: - Text generation - PDF and image analysis
- YouTube video analysis - Local MP4 video analysis

See the gem module documentation for details.

YouTube & Video Utilities (hamel.yt)

Tools for working with video content: - Fetch transcripts from YouTube videos - Transcribe local MP4 files using OpenAI Whisper - Generate chapter timestamps for YouTube videos or local MP4 files

See the yt module documentation for details.

Zoom Utilities (hamel.zoom)

Tools for downloading Zoom meeting transcripts: - Download transcripts by meeting ID - Search recordings by topic - Parallel downloads for multiple meetings

Setup: Requires Zoom Server-to-Server OAuth app with recording:read:admin scope activated in Zoom marketplace. Click Develop in the top-right corner, then Build App, select Server-to-Server OAuth, and fill in the app information.

Create .env with:

ZOOM_CLIENT_ID=your_client_id
ZOOM_CLIENT_SECRET=your_client_secret
ZOOM_ACCOUNT_ID=your_account_id

See the zoom module documentation for details.

Writing Utilities (hamel.writing)

Tools for content creation: - Convert PDFs to images - Generate annotated blog posts from talks (supports YouTube or MP4 videos) - Gather context from web pages

See the writing module documentation for details.