What is MetaTube?

This is a scraping tool with over ten built-in JAV backends, allowing you to organize your adult video library into a poster wall format similar to TV shows and movies. It can easily scrape video metadata, including titles, summaries, actors, tags, ratings, etc.

If you have the ability or interest, you can find the official documentation and usage instructions on the following websites:

Documentation: https://metatube-community.github.io/README_ZH/ GitHub Repository: https://github.com/metatube-community Binary Files Releases: https://github.com/metatube-community/metatube-server-releases/releases Docker Images Releases: https://github.com/metatube-community/metatube-sdk-go/pkgs/container/metatube-server

Deployment Methods

Since using MetaTube requires a backend, and the official backend is no longer provided due to excessive user numbers, you must set up your own MetaTube backend.

Two main methods will be introduced. If you have a server, you can deploy it via Docker. However, if you do not have a server, you can use free containers for deployment. The free container demonstration will cover two platforms: Koyeb and Claw Run.

Deploying Backend on VPS

Official VPS configuration requirements:

metatube-server has very low resource usage. Theoretically, any machine with RAM >= 128MB and Disk >= 2GB can directly run the binary program or Docker container.

Direct Deployment

Download the latest backend program from Releases and use any of the following command modes to run the backend:

  1. Memory Mode: ./metatube-server
  2. Database Mode (Recommended): ./metatube-server -dsn metatube.db

Tips: Versions with the -v3 suffix theoretically have higher execution efficiency but require support from newer CPUs. On Windows, you can double-click to run it directly, but using Database Mode to persist data is still recommended. The default port is 8080. If the port is occupied, you can use the -port parameter to configure a different port. Backend services can be run in the background on Linux using nohup, systemd, Docker, etc. Backend services can be run in the background on Windows using NSSM.

Of course, this method is obviously not robust. On a Linux server, you can use systemd to manage the service, ensuring the backend service starts automatically after a server restart. You need to create a configuration file ending in .service, usually located in the /etc/systemd/system/ directory. Open the editor using sudo privileges (taking metatube.service as an example):

sudo nano /etc/systemd/system/metatube.service

Paste the following template and modify ExecStart and WorkingDirectory according to your actual path:

[Unit]
Description=MetaTube Server Service
After=network.target

[Service]
User=root
Group=root
WorkingDirectory=/path/to/your/folder
ExecStart=/path/to/your/folder/metatube-server
Restart=on-failure
RestartSec=5s
StandardOutput=append:/var/log/metatube.log
StandardError=inherit

[Install]
WantedBy=multi-user.target

Note: Be sure to replace /path/to/your/folder with the actual absolute path where metatube-server is located.

After configuration is complete, execute the following commands in order to make the configuration take effect:

sudo systemctl daemon-reload
sudo systemctl enable metatube.service
sudo systemctl start metatube.service

Docker Deployment

Please ensure the deployment platform has a Docker environment; otherwise, please install Docker first.

Run any of the following commands directly:

docker run -d -p 8080:8080 --name metatube ghcr.io/metatube-community/metatube-server:latest
docker run -d -p 8080:8080 -v $PWD/config:/config --name metatube ghcr.io/metatube-community/metatube-server:latest -dsn /config/metatube.db

Note: The first command creates a temporary database; data will not be persisted. The second command creates a persistent database; data will be persisted.

Docker-Compose Deployment

Please ensure the deployment platform has Docker and Docker-compose environments.

mkdir metatube-sdk-go && cd metatube-sdk-go
curl -sL https://raw.githubusercontent.com/metatube-community/metatube-sdk-go/main/docker-compose.yaml -o docker-compose.yaml
docker-compose up -d

Serverless Deployment

Two platforms are recommended: Koyeb and Claw Run.

The former offers a monthly free quota of $1, while the latter offers a monthly free quota of $5.

Koyeb Deployment

If you have not registered for a Koyeb account yet, please click here to register. Once registration is complete, you should see the following screen:

Click the “New Service” button on the left to enter the service creation page. Then, select “Deploy a Docker image” to access the service deployment page:

Enter ghcr.io/metatube-community/metatube-server:latest in the Docker image address field. There is no need to fill in the Registry section, as this is a public Docker image. Next, select the “Nano” plan under the CPU section and choose a suitable region. It is recommended to select a region based on the location of your Jellyfin/Emby server to ensure the best possible experience.

Next, proceed to the server parameter configuration. You need to add two environment variables under Environment variables and files: PORT and TOKEN. Set the value of PORT to 3000 and TOKEN to a token of your own setting. Please safeguard this Token, as it will be required when configuring MetaTube in Emby/Jellyfin. Afterwards, change the HTTP port to 3000 in the Ports section. Once the settings are complete, click the Create Service button and wait for the deployment to finish.

After deployment is complete, you can view your service on the Services page.

Click on the service name to enter the service details page. Then, click the Open URL button to access the MetaTube service page. If {"data":{"app":"metatube","version":"v1.3.2-f2bbaee"}} is displayed, the deployment is successful.

ClawCloud Run Deployment

Since the images pulled by ClawCloud Run only support those published on docker.io, you cannot directly use the official images published on the GitHub Container Registry. However, someone has already synchronized the image to docker.io for us. The image address is: https://hub.docker.com/r/jvt038/metatube. Therefore, we can directly enter jvt038/metatube:latest in the Image Name field to pull it normally.

k4xsPzo02dW4oA9MDG4rVgXLUcKzXNba.png

Similarly, you also need to expose port 3000 to the public internet and set the environment variables TOKEN and PORT.

TQ7n9BnfoGBF2RG5F2z2uxPZBNzDaTZ5.png

Afterwards, once the storage space is configured, you can run it. The subsequent operations are the same as Koyeb, so they will not be repeated here.

Plugin Installation

Please ensure that the current Jellyfin/Emby/Plex is the latest stable version. Due to the author’s limited development energy and the instability of Jellyfin/Emby/Plex test versions, this plugin does not and will not support beta versions of these two platforms.

Jellyfin

  1. Go to Jellyfin Dashboard > Plugins/Repositories > Settings, and click Add.
  2. Enter Repository Name: MetaTube
  3. Enter Repository URL: https://raw.githubusercontent.com/metatube-community/jellyfin-plugin-metatube/dist/manifest.json
  4. Find MetaTube in the plugin catalog and click Install.
  5. Restart Jellyfin.

Emby

  1. Download the latest MetaTube plugin from Releases.
  2. Extract the MetaTube.dll file.
  3. Copy the dll file to the Emby plugins directory.
  4. Restart the Emby service.

PS: Subsequent updates for the Emby plugin are automatically completed by scheduled tasks in the background.

Enter the MetaTube configuration interface, and fill in the Backend URL and Token to complete the configuration.

For subsequent use, simply set the metadata scraper source to MetaTube.

MetaTube

Author

Shayne Wong

Publish Date

02 - 05 - 2026

License

Shayne Wong

Avatar
Shayne Wong

All time is no time when it is past.