Clip audio from Youtube.
You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Go to file
Rob Watson 36bd92608a
continuous-integration/drone/push Build is passing Details
Update Go to 1.19
10 months ago
backend Update Go to 1.19 10 months ago
frontend Remove fast-forward and rewind buttons 1 year ago
proto Bug fix: update waveform after fetching audio from Youtube 1 year ago
.dockerignore Add Dockerfile and staging deployment setup 2 years ago
.drone.yml Update Go to 1.19 10 months ago
.gitignore Add FileSystemStore file store 1 year ago
Dockerfile Update Go to 1.19 10 months ago
LICENSE Add README and LICENSE files 2 years ago Add Drone badge 1 year ago Frontend fixes 2 years ago More progress 2 years ago


Build Status

Clipper is a Youtube audio clipper developed using modern web technologies.

  • Go
  • protobuf, grpc-web
  • Typescript
  • React

It is currently in early development.



It is required that an ffmpeg binary is available in the current path.

Running the app

The backend requires configuration via environment variables - see backend/.env.example. All variables must be set unless they are marked as optional.

Then, the server can be started with:

cd backend/
go run cmd/clipper/main.go

The frontend can be launched on localhost:3000 with:

cd frontend/
yarn start

Code generation

To regenerate protobuf code and GRPC stubs, first install protoc and the GRPC dependencies:

go install
go install

Then generate the code with:


To regenerate the database access layer, first install sqlc. New queries can be added to backend/sql/queries.sql, and code regenerated with:

cd backend/
sqlc generate

Mocks require mockery to be installed, and can be regenerated with:

go generate ./...


Database migrations require golang-migrate.

go install -tags 'postgres'

Migrations then can be run with:

cd backend/
migrate -path sql/migrations -database $DATABASE_URL up