How to Deploy and Configure MetaTube, a Japanese Adult Video Scraper
I. Introduction to MetaTube
Official site: https://metatube-community.github.io/
Project repo: https://github.com/metatube-community/jellyfin-plugin-metatube
Anyone who has ever organized a media library knows that scraping metadata is one of the most frustrating parts of the process. This is especially true for the massive Japanese adult video market, where the built-in scrapers quickly show their limitations.
Before MetaTube, I had tried a few similar scrapers. But due to maintenance issues, they often failed to fetch actress portraits or would throw database errors and similar problems.
That changed when I happened to come across MetaTube on GitHub while searching for related plugin projects.
MetaTube is an open-source project. What I really like about it is its strong support for Japanese adult videos (with multiple data sources), plus its built-in actress providers. While scraping movie information, it also helps you automatically build actress profiles, which is extremely handy.
Unlike many other scrapers, MetaTube uses a client–server model (i.e., a plugin installed on your media server plus a separate backend service). Concretely, when scraping adult video data, the MetaTube server first fetches and normalizes data from supported source sites into a format suitable for Jellyfin/Emby/Plex, then the client plugin writes that data into the Jellyfin/Emby/Plex media database.
MetaTube supports quite a few adult video index sites, and more may be added in the future. I won’t list them all here—you can see all supported providers directly in this folder in the backend code:
https://github.com/metatube-community/metatube-sdk-go/tree/main/provider
II. Deployment
Deploy with Docker Compose
Make sure Docker and Docker Compose are already installed on your platform (port 8080 is used by default; if it’s occupied, modify the
docker-compose.ymlfile).
mkdir metatube-sdk-go && cd metatube-sdk-gocurl -sL https://raw.githubusercontent.com/metatube-community/metatube-sdk-go/main/docker-compose.yml -o docker-compose.ymldocker compose up -d
III. Installing and Configuring the MetaTube Plugin
Once the server-side component is running, you can install and configure the corresponding Jellyfin plugin. Since this part is quite straightforward, I’ll just reuse the installation steps from the author:
Go to Jellyfin Dashboard > Plugins > Repositories, and click Add
Enter repository name: MetaTube
Enter repository URL: https://raw.githubusercontent.com/metatube-community/jellyfin-plugin-metatube/dist/manifest.json
Find MetaTube in the Plugin Catalog, click Install, then restart Jellyfin
Installation guide reference: https://metatube-community.github.io/wiki/plugin-installation/
After installing the MetaTube plugin, locate MetaTube in the plugins list and click it to open the settings page.
Since this is aimed at initial setup, I won’t go through every option in detail. I’ll just explain how to fill in the server information we set up earlier.
Server: Enter the server address and port, for example: http://ip:8080
Token: Enter the secret (password) configured on the server. Leave it blank if you haven’t set one.
If you just want to connect to the backend, filling in these two fields is enough. The remaining options are scraper-related; configure them according to your own needs.
After you’re done, don’t forget to click Save at the bottom to persist the configuration. From there, you can use MetaTube like any other Jellyfin metadata provider—simply select MetaTube as the data source in your library settings.
The same idea applies to Plex, Emby, and others.
IV. Results Preview