MetaTube SDK Go
Metadata Tube SDK in Golang.
Contents
Features
- Supported platforms
- Linux
- Darwin
- Windows
- BSD(s)
- Supported Databases
- Image processing
- Auto cropping
- Badge support
- Face detection
- Image hashing
- RESTful API
- 20+ providers
- Text translation
Installation
To install this package, you first need Go installed (go1.25+ is required), then you can use the below Go command to install SDK.
go get -u github.com/metatube-community/metatube-sdk-go
Gitea Docker Deployment
This fork publishes container images to
gitea.bytevibe.dev/gary/metatube-server using
.gitea/workflows/docker.yml. Images support both linux/amd64 and
linux/arm64; Docker selects the matching architecture when pulling.
Actions Setup
- Enable Actions and Packages for the Gitea repository.
- Register a Linux runner with the
ubuntu-latestlabel. Its job environment must have access to a Docker daemon, and permit QEMU/binfmt registration for building the other architecture. The runner must also be able to download the actions from GitHub and base images and Go dependencies from their registries. - Create a personal access token for
garywith package read/write permission. Add it under repository Settings > Actions > Secrets with the nameREGISTRY_TOKEN. Do not commit the token to the repository.
Pushes to main publish latest and sha-<full commit hash>. Pushes of tags
starting with v publish that tag and the commit tag without changing latest.
The commit tag can be used to deploy or roll back to a specific build. The
original .github/workflows/ files are upstream GitHub workflows; this fork's
Gitea publishing workflow uses the Gitea registry.
Deploy or Update
The included docker-compose.yaml uses the Gitea image. If authentication is
required, log in with your Gitea username and a token with package read permission:
docker login gitea.bytevibe.dev -u gary
docker pull gitea.bytevibe.dev/gary/metatube-server:latest
docker compose pull metatube
docker compose up -d metatube
Run these commands on the deployment server in the directory containing your Compose file. Keep its existing database, volumes, token, and other settings when changing the image of an existing deployment. Publishing a new image does not update running containers automatically.
Credits
| Library | Description |
|---|---|
| gocolly/colly | Elegant Scraper and Crawler Framework for Golang |
| gin-gonic/gin | Gin is a HTTP web framework written in Go |
| gorm.io/gorm | The fantastic ORM library for Golang |
| esimov/pigo | Fast face detection, pupil/eyes localization and facial landmark points detection library in pure Go |
| robertkrimen/otto | A JavaScript interpreter in Go (golang) |
| modernc.org/sqlite | Package sqlite is a CGo-free port of SQLite/SQLite3 |
| corona10/goimagehash | Go Perceptual image hashing package |
| antchfx/xpath | XPath package for Golang, supports HTML, XML, JSON document query |
| gen2brain/jpegli | Go encoder/decoder for JPEG based on jpegli |