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
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
Metadata Files
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:
Set up the development environment:
bash git clone https://github.com/copyleftdev/yt-pull.git cd yt-pull ./scripts/install-hooks.sh # Install Git hooksCreate a feature branch: ```bash ./scripts/git-flow-setup.sh --feature your-feature-name
Make your changes...
```
Commit using conventional commit messages:
bash git commit -m "feat(component): add new feature"Create a pull request to the
developbranch
See CONTRIBUTING.md for detailed guidelines.
License
MIT
Owner
- Name: Donald Johnson
- Login: copyleftdev
- Kind: user
- Location: Los Angeles
- Repositories: 39
- Profile: https://github.com/copyleftdev
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
- 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
- alpine 3.18 build
- 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
- 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