https://github.com/copyleftdev/yt-pull

https://github.com/copyleftdev/yt-pull

Science Score: 26.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
  • Academic publication links
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (13.8%) to scientific vocabulary
Last synced: 10 months ago · JSON representation

Repository

Basic Info
  • Host: GitHub
  • Owner: copyleftdev
  • License: mit
  • Language: Go
  • Default Branch: develop
  • Size: 62.5 KB
Statistics
  • Stars: 0
  • Watchers: 0
  • Forks: 0
  • Open Issues: 0
  • Releases: 0
Created about 1 year ago · Last pushed about 1 year ago
Metadata Files
Readme Contributing License

README.md

YouTube Transcript Extraction CLI

A command-line tool for extracting transcripts from YouTube videos, playlists, and channels.

Features

  • Extract transcripts from single YouTube videos
  • Process entire playlists and channels
  • Support for multiple languages
  • Multiple output formats (TXT, JSON, SRT, XML)
  • Configurable output options

Installation

Prerequisites

  • Go 1.16 or higher
  • YouTube Data API key (for playlist and channel processing)

Building from source

```bash

Clone the repository

git clone https://github.com/copyleftdev/yt-pull.git cd yt-pull

Build the binary

go build -o ytcli ./cmd/ytcli

Install the binary (optional)

go install ./cmd/ytcli ```

Configuration

Create a configuration file at ~/.ytcli/config.yaml or in the current directory:

```yaml

YouTube Data API key

apikey: "YOURAPIKEYHERE"

Default language for transcripts

default_language: "en"

Output formatting options

output: # Output format: txt, json, srt, or xml format: "txt" # Include timestamps in output timestamps: false # Include speaker identification if available speakers: true

Log verbosity (0-3, where 0 is silent and 3 is debug)

verbosity: 1 ```

Usage

Fetching a transcript from a single video

bash ytcli fetch --url "https://www.youtube.com/watch?v=VIDEO_ID" --lang "en"

Fetching transcripts from a playlist

bash ytcli fetch --url "https://www.youtube.com/playlist?list=PLAYLIST_ID" --output-dir "./transcripts"

Command-line options

  • --url: YouTube URL (video, playlist, or channel)
  • --lang: Language code (e.g., 'en', 'fr')
  • --output-dir: Directory to save transcripts
  • --format: Output format (txt, json, srt, xml)
  • --timestamps: Include timestamps in output
  • --verbose, -v: Enable verbose output
  • --version: Display version information

Development

This project follows the GitFlow branching model. To contribute:

  1. Set up the development environment: bash git clone https://github.com/copyleftdev/yt-pull.git cd yt-pull ./scripts/install-hooks.sh # Install Git hooks

  2. Create a feature branch: ```bash ./scripts/git-flow-setup.sh --feature your-feature-name

    Make your changes...

    ```

  3. Commit using conventional commit messages: bash git commit -m "feat(component): add new feature"

  4. Create a pull request to the develop branch

See CONTRIBUTING.md for detailed guidelines.

License

MIT

Owner

  • Name: Donald Johnson
  • Login: copyleftdev
  • Kind: user
  • Location: Los Angeles

GitHub Events

Total
  • Push event: 1
  • Pull request event: 2
  • Create event: 6
Last Year
  • Push event: 1
  • Pull request event: 2
  • Create event: 6

Dependencies

.github/workflows/release.yml actions
  • actions/checkout v4 composite
  • actions/setup-go v5 composite
  • docker/login-action v3 composite
  • docker/setup-buildx-action v3 composite
  • docker/setup-qemu-action v3 composite
  • goreleaser/goreleaser-action v5 composite
Dockerfile docker
  • alpine 3.18 build
go.mod go
  • cloud.google.com/go/auth v0.16.1
  • cloud.google.com/go/auth/oauth2adapt v0.2.8
  • cloud.google.com/go/compute/metadata v0.7.0
  • github.com/felixge/httpsnoop v1.0.4
  • github.com/go-logr/logr v1.4.2
  • github.com/go-logr/stdr v1.2.2
  • github.com/google/s2a-go v0.1.9
  • github.com/google/uuid v1.6.0
  • github.com/googleapis/enterprise-certificate-proxy v0.3.6
  • github.com/googleapis/gax-go/v2 v2.14.2
  • github.com/mitchellh/colorstring v0.0.0-20190213212951-d06e56a500db
  • github.com/rivo/uniseg v0.4.7
  • github.com/schollz/progressbar/v3 v3.18.0
  • go.opentelemetry.io/auto/sdk v1.1.0
  • go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.60.0
  • go.opentelemetry.io/otel v1.35.0
  • go.opentelemetry.io/otel/metric v1.35.0
  • go.opentelemetry.io/otel/trace v1.35.0
  • golang.org/x/crypto v0.38.0
  • golang.org/x/net v0.40.0
  • golang.org/x/oauth2 v0.30.0
  • golang.org/x/sys v0.33.0
  • golang.org/x/term v0.32.0
  • golang.org/x/text v0.25.0
  • google.golang.org/api v0.235.0
  • google.golang.org/genproto/googleapis/rpc v0.0.0-20250512202823-5a2f75b736a9
  • google.golang.org/grpc v1.72.1
  • google.golang.org/protobuf v1.36.6
  • gopkg.in/yaml.v3 v3.0.1
go.sum go
  • cloud.google.com/go/auth v0.16.1
  • cloud.google.com/go/auth/oauth2adapt v0.2.8
  • cloud.google.com/go/compute/metadata v0.7.0
  • github.com/felixge/httpsnoop v1.0.4
  • github.com/go-logr/logr v1.2.2
  • github.com/go-logr/logr v1.4.2
  • github.com/go-logr/stdr v1.2.2
  • github.com/google/s2a-go v0.1.9
  • github.com/google/uuid v1.6.0
  • github.com/googleapis/enterprise-certificate-proxy v0.3.6
  • github.com/googleapis/gax-go/v2 v2.14.2
  • github.com/mitchellh/colorstring v0.0.0-20190213212951-d06e56a500db
  • github.com/rivo/uniseg v0.4.7
  • github.com/schollz/progressbar/v3 v3.18.0
  • go.opentelemetry.io/auto/sdk v1.1.0
  • go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.60.0
  • go.opentelemetry.io/otel v1.35.0
  • go.opentelemetry.io/otel/metric v1.35.0
  • go.opentelemetry.io/otel/trace v1.35.0
  • golang.org/x/crypto v0.38.0
  • golang.org/x/net v0.40.0
  • golang.org/x/oauth2 v0.30.0
  • golang.org/x/sys v0.33.0
  • golang.org/x/term v0.32.0
  • golang.org/x/text v0.25.0
  • google.golang.org/api v0.235.0
  • google.golang.org/genproto/googleapis/rpc v0.0.0-20250512202823-5a2f75b736a9
  • google.golang.org/grpc v1.72.1
  • google.golang.org/protobuf v1.36.6
  • gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405
  • gopkg.in/yaml.v3 v3.0.1