Compare commits
11 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 9a35583eed | |||
| ba958b9f44 | |||
| 19e49e89b9 | |||
| 3f889da389 | |||
| ab669f2e74 | |||
| 5386bfc8a2 | |||
| aa998d9a3a | |||
| dde75321a7 | |||
| d23f594b88 | |||
| b1cbb74f32 | |||
| f01cae6554 |
@@ -0,0 +1,3 @@
|
||||
# Shell scripts MUST keep LF endings — CRLF from Windows checkouts breaks
|
||||
# /bin/sh inside Linux containers (`/bin/sh^M: bad interpreter`).
|
||||
*.sh text eol=lf
|
||||
@@ -2,6 +2,16 @@ name: Build & Push Docker Image
|
||||
|
||||
on:
|
||||
workflow_dispatch:
|
||||
inputs:
|
||||
tag:
|
||||
description: "Image tag to publish under (e.g. 3.5.0 to rebuild a released version, or 3.5.0-fix.1 for a side-by-side). Leave blank for dev-<run_id>."
|
||||
required: false
|
||||
type: string
|
||||
push_latest:
|
||||
description: "Also tag the resulting image as `latest` (use when rebuilding a stable release)."
|
||||
required: false
|
||||
type: boolean
|
||||
default: false
|
||||
push:
|
||||
tags:
|
||||
- "v*"
|
||||
@@ -9,6 +19,11 @@ on:
|
||||
env:
|
||||
REGISTRY: ghcr.io
|
||||
IMAGE_NAME: ${{ github.repository }}
|
||||
# Docker Hub mirror — same image, different registry. Credentials
|
||||
# come from the DOCKERHUB_USERNAME / DOCKERHUB_TOKEN secrets (token,
|
||||
# not account password). If either secret is empty, the Docker Hub
|
||||
# login step is skipped and only GHCR gets pushed.
|
||||
DOCKERHUB_IMAGE: caorushizi/mediago
|
||||
|
||||
jobs:
|
||||
docker:
|
||||
@@ -35,17 +50,65 @@ jobs:
|
||||
username: ${{ github.actor }}
|
||||
password: ${{ secrets.GITHUB_TOKEN }}
|
||||
|
||||
# GitHub Actions forbids `secrets.*` inside `if:` expressions
|
||||
# directly — it fails with `Unrecognized named-value: 'secrets'`.
|
||||
# The blessed workaround: pull the secret through `env:` (which
|
||||
# IS allowed) inside a single check step, write a boolean to
|
||||
# step outputs, and have every downstream step guard on the
|
||||
# output instead of the raw secret.
|
||||
- name: Detect Docker Hub credentials
|
||||
id: dockerhub
|
||||
env:
|
||||
DOCKERHUB_USERNAME: ${{ secrets.DOCKERHUB_USERNAME }}
|
||||
DOCKERHUB_TOKEN: ${{ secrets.DOCKERHUB_TOKEN }}
|
||||
run: |
|
||||
if [ -n "$DOCKERHUB_USERNAME" ] && [ -n "$DOCKERHUB_TOKEN" ]; then
|
||||
echo "enabled=true" >> "$GITHUB_OUTPUT"
|
||||
else
|
||||
echo "enabled=false" >> "$GITHUB_OUTPUT"
|
||||
fi
|
||||
|
||||
# Only log in (and later push) to Docker Hub when both secrets are
|
||||
# configured. Lets forks / trial runs without Docker Hub
|
||||
# credentials still build-and-push to GHCR.
|
||||
- name: Login to Docker Hub
|
||||
if: steps.dockerhub.outputs.enabled == 'true'
|
||||
uses: docker/login-action@v4
|
||||
with:
|
||||
username: ${{ secrets.DOCKERHUB_USERNAME }}
|
||||
password: ${{ secrets.DOCKERHUB_TOKEN }}
|
||||
|
||||
# Compose the list of target images based on which registries we
|
||||
# actually have credentials for. Without this, metadata-action
|
||||
# would always generate Docker Hub tags and build-push-action
|
||||
# would then fail with 401 on forks that haven't set the secrets.
|
||||
- name: Resolve image targets
|
||||
id: targets
|
||||
run: |
|
||||
{
|
||||
echo "images<<EOF"
|
||||
echo "${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}"
|
||||
if [ "${{ steps.dockerhub.outputs.enabled }}" = "true" ]; then
|
||||
echo "${{ env.DOCKERHUB_IMAGE }}"
|
||||
fi
|
||||
echo "EOF"
|
||||
} >> "$GITHUB_OUTPUT"
|
||||
|
||||
- name: Docker meta
|
||||
id: meta
|
||||
uses: docker/metadata-action@v6
|
||||
with:
|
||||
images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}
|
||||
images: ${{ steps.targets.outputs.images }}
|
||||
tags: |
|
||||
# For version tags: v1.0.0 → 1.0.0 + latest (non-beta only)
|
||||
# 1. Manual rebuild with an explicit tag (e.g. `3.5.0`, `3.5.0-fix.1`)
|
||||
type=raw,value=${{ inputs.tag }},enable=${{ inputs.tag != '' }}
|
||||
# 2. Tag push: v1.0.0 → 1.0.0
|
||||
type=semver,pattern={{version}}
|
||||
type=raw,value=latest,enable=${{ startsWith(github.ref, 'refs/tags/v') && !contains(github.ref, 'beta') }}
|
||||
# For manual triggers: dev-{run_id}
|
||||
type=raw,value=dev-${{ github.run_id }},enable=${{ !startsWith(github.ref, 'refs/tags/') }}
|
||||
# 3. `latest`: on stable semver tag pushes, or when the manual
|
||||
# rebuild explicitly asks for it
|
||||
type=raw,value=latest,enable=${{ (startsWith(github.ref, 'refs/tags/v') && !contains(github.ref, 'beta')) || inputs.push_latest }}
|
||||
# 4. Fallback for manual triggers with no custom tag
|
||||
type=raw,value=dev-${{ github.run_id }},enable=${{ !startsWith(github.ref, 'refs/tags/') && inputs.tag == '' }}
|
||||
|
||||
- name: Build and push
|
||||
uses: docker/build-push-action@v7
|
||||
@@ -54,6 +117,11 @@ jobs:
|
||||
platforms: linux/amd64,linux/arm64
|
||||
push: true
|
||||
tags: ${{ steps.meta.outputs.tags }}
|
||||
# `metadata-action` already emits the standard OCI labels
|
||||
# (image.title / description / source / licenses / version /
|
||||
# revision / created). `revision` uses github.sha, so two
|
||||
# builds that re-use a tag are distinguishable via
|
||||
# `docker inspect`.
|
||||
labels: ${{ steps.meta.outputs.labels }}
|
||||
cache-from: type=gha
|
||||
cache-to: type=gha,mode=max
|
||||
@@ -62,8 +130,14 @@ jobs:
|
||||
run: |
|
||||
echo "### 🎉 Docker Image Published" >> $GITHUB_STEP_SUMMARY
|
||||
echo "" >> $GITHUB_STEP_SUMMARY
|
||||
echo "**Image:** \`${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}\`" >> $GITHUB_STEP_SUMMARY
|
||||
echo "**Registries:**" >> $GITHUB_STEP_SUMMARY
|
||||
echo "- \`${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}\`" >> $GITHUB_STEP_SUMMARY
|
||||
if [ "${{ steps.dockerhub.outputs.enabled }}" = "true" ]; then
|
||||
echo "- \`docker.io/${{ env.DOCKERHUB_IMAGE }}\`" >> $GITHUB_STEP_SUMMARY
|
||||
fi
|
||||
echo "**Platforms:** linux/amd64, linux/arm64" >> $GITHUB_STEP_SUMMARY
|
||||
echo "**Version:** \`${{ steps.meta.outputs.version }}\`" >> $GITHUB_STEP_SUMMARY
|
||||
echo "**Commit:** \`${{ github.sha }}\`" >> $GITHUB_STEP_SUMMARY
|
||||
echo "" >> $GITHUB_STEP_SUMMARY
|
||||
echo "**Tags:**" >> $GITHUB_STEP_SUMMARY
|
||||
echo "${{ steps.meta.outputs.tags }}" | while read tag; do
|
||||
@@ -72,5 +146,8 @@ jobs:
|
||||
echo "" >> $GITHUB_STEP_SUMMARY
|
||||
echo "**Pull:**" >> $GITHUB_STEP_SUMMARY
|
||||
echo "\`\`\`bash" >> $GITHUB_STEP_SUMMARY
|
||||
echo "docker pull ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:latest" >> $GITHUB_STEP_SUMMARY
|
||||
echo "docker pull ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:${{ steps.meta.outputs.version }}" >> $GITHUB_STEP_SUMMARY
|
||||
if [ "${{ steps.dockerhub.outputs.enabled }}" = "true" ]; then
|
||||
echo "docker pull ${{ env.DOCKERHUB_IMAGE }}:${{ steps.meta.outputs.version }}" >> $GITHUB_STEP_SUMMARY
|
||||
fi
|
||||
echo "\`\`\`" >> $GITHUB_STEP_SUMMARY
|
||||
|
||||
@@ -0,0 +1,96 @@
|
||||
# Contributing to MediaGo
|
||||
|
||||
Thanks for your interest in hacking on MediaGo! This doc covers everything
|
||||
you need to get a local dev build running. For user-facing usage, see the
|
||||
main [README](./README.md).
|
||||
|
||||
## Prerequisites
|
||||
|
||||
- **Node.js** ≥ 20 — install from [nodejs.org](https://nodejs.org/)
|
||||
- **pnpm** ≥ 10 — `npm i -g pnpm`
|
||||
- **Go** ≥ 1.22 — only needed if you're working on the Go Core backend
|
||||
(`apps/core/`). Install from [go.dev](https://go.dev/dl/).
|
||||
|
||||
## Clone & install
|
||||
|
||||
```shell
|
||||
git clone https://github.com/caorushizi/mediago.git
|
||||
cd mediago
|
||||
pnpm install
|
||||
```
|
||||
|
||||
## Repository layout
|
||||
|
||||
MediaGo is a pnpm + Turborepo monorepo with three products that share the
|
||||
same Go Core backend:
|
||||
|
||||
```
|
||||
apps/
|
||||
core/ Go backend (download orchestration, SSE, REST API)
|
||||
electron/ Electron desktop main process
|
||||
server/ Node.js launcher for the self-hosted web build
|
||||
ui/ Shared React 19 frontend (Electron + Web)
|
||||
player-ui/ React frontend embedded inside Go Core for playback
|
||||
packages/
|
||||
shared/common/ Cross-platform types, constants, i18n resources
|
||||
core-sdk/ TypeScript SDK for the Go Core REST API
|
||||
electron-preload/
|
||||
mediago-extension/ Browser extension (Chrome / Edge)
|
||||
docs/ VitePress site (zh / en / jp)
|
||||
extra/ Vendored binaries (e.g. aria2)
|
||||
scripts/ Dep downloaders, extension packager, etc.
|
||||
```
|
||||
|
||||
Deeper architecture notes live in [`CLAUDE.md`](./CLAUDE.md).
|
||||
|
||||
## Everyday commands
|
||||
|
||||
```shell
|
||||
# Download third-party binaries (ffmpeg, yt-dlp, N_m3u8DL-RE, BBDown,
|
||||
# aria2, mediago-core) for the current platform — run once per clone
|
||||
pnpm deps:download
|
||||
|
||||
# Run the Electron desktop app in dev mode (HMR)
|
||||
pnpm dev:electron
|
||||
|
||||
# Run the self-hosted web server in dev mode
|
||||
pnpm dev:server
|
||||
|
||||
# Build an unpacked Electron directory (fast, for smoke-testing layout)
|
||||
pnpm pack:electron
|
||||
|
||||
# Build full Electron installers for distribution (.exe / .dmg / .deb)
|
||||
pnpm release:electron
|
||||
|
||||
# Lint + format + type-check (what CI runs)
|
||||
pnpm check
|
||||
```
|
||||
|
||||
The self-hosted web server doesn't have a dedicated packaging script — it
|
||||
ships via the Docker image published to GHCR, or you can run the build
|
||||
output (`pnpm -F @mediago/server build`) directly under Node.
|
||||
|
||||
## Commit style
|
||||
|
||||
This repo uses [Conventional Commits](https://www.conventionalcommits.org/).
|
||||
Typical shapes:
|
||||
|
||||
```
|
||||
feat(ui): add dark-mode toggle to settings page
|
||||
fix(core): resume m3u8 downloads after process restart
|
||||
refactor(extension): split options hook per card
|
||||
chore(deps): bump axios from 1.14.0 to 1.15.0
|
||||
```
|
||||
|
||||
Commits are lint-staged on commit (oxlint --fix + oxfmt --write on
|
||||
staged files). Type checks run via `turbo type:check`.
|
||||
|
||||
## Pull requests
|
||||
|
||||
- Open PRs against the `master` branch.
|
||||
- Keep each PR focused — one feature / fix per PR if possible.
|
||||
- Include a short "why" in the description; the "what" is in the diff.
|
||||
- If the change is user-visible, a line in the PR description that would
|
||||
fit in a release note is appreciated.
|
||||
|
||||
Thanks for contributing! 🚀
|
||||
+13
-13
@@ -34,6 +34,12 @@ COPY apps/player-ui/ apps/player-ui/
|
||||
COPY apps/electron/app/package.json apps/electron/app/package.json
|
||||
COPY scripts/ scripts/
|
||||
|
||||
# Vendored binaries (aria2 in particular). `scripts/download-deps.ts`
|
||||
# treats `source: "local"` entries by copying from `extra/<tool>/<os>/<arch>/`
|
||||
# into `.deps/`; without this COPY they silently get skipped and the
|
||||
# resulting image ships with no aria2c.
|
||||
COPY extra/ extra/
|
||||
|
||||
# Build player-ui (will be embedded in Go core binary)
|
||||
RUN pnpm --filter @mediago/player-ui run build
|
||||
|
||||
@@ -98,20 +104,14 @@ RUN mkdir -p /app/deps && \
|
||||
|
||||
RUN mkdir -p /app/mediago/data /app/mediago/logs /app/mediago/downloads
|
||||
|
||||
# Entrypoint script — isolates the invocation flags from the Dockerfile
|
||||
# so editing the default args doesn't require rebuilding the full image
|
||||
# layer and so callers can still append overrides via `docker run`.
|
||||
COPY scripts/docker-entrypoint.sh /usr/local/bin/docker-entrypoint.sh
|
||||
RUN chmod +x /usr/local/bin/docker-entrypoint.sh
|
||||
|
||||
EXPOSE 8899
|
||||
|
||||
VOLUME ["/app/mediago"]
|
||||
|
||||
CMD ["mediago-core", \
|
||||
"--port=8899", \
|
||||
"--static-dir=/app/static", \
|
||||
"--enable-auth", \
|
||||
"--db-path=/app/mediago/data/mediago.db", \
|
||||
"--config-dir=/app/mediago/data", \
|
||||
"--log-dir=/app/mediago/logs", \
|
||||
"--local-dir=/app/mediago/downloads", \
|
||||
"--m3u8-bin=/app/deps/N_m3u8DL-RE", \
|
||||
"--bilibili-bin=/app/deps/BBDown", \
|
||||
"--direct-bin=/app/deps/aria2c", \
|
||||
"--mediago-bin=/app/deps/mediago", \
|
||||
"--ffmpeg-bin=/app/deps/ffmpeg"]
|
||||
ENTRYPOINT ["/usr/local/bin/docker-entrypoint.sh"]
|
||||
|
||||
+90
-90
@@ -1,13 +1,19 @@
|
||||
<div align="center">
|
||||
<h1>MediaGo</h1>
|
||||
<a href="https://downloader.caorushizi.cn/jp/guides.html?form=github">早く始めます</a>
|
||||
<a href="https://downloader.caorushizi.cn/jp/guides.html?form=github">クイックスタート</a>
|
||||
<span> • </span>
|
||||
<a href="https://downloader.caorushizi.cn/jp?form=github">公式サイトです</a>
|
||||
<a href="https://downloader.caorushizi.cn/jp?form=github">公式サイト</a>
|
||||
<span> • </span>
|
||||
<a href="https://downloader.caorushizi.cn/jp/documents.html?form=github">にやすりをかける</a>
|
||||
<a href="https://downloader.caorushizi.cn/jp/documents.html?form=github">ドキュメント</a>
|
||||
<span> • </span>
|
||||
<a href="https://github.com/caorushizi/mediago/discussions">Discussions</a>
|
||||
<br>
|
||||
|
||||
<a href="https://github.com/caorushizi/mediago/blob/master/README.md">English</a>
|
||||
<span> • </span>
|
||||
<a href="https://github.com/caorushizi/mediago/blob/master/README.zh.md">中文</a>
|
||||
<br>
|
||||
|
||||
<!-- MediaGo Pro -->
|
||||
<a href="https://mediago.torchstellar.com/?from=github">
|
||||
<img src="https://img.shields.io/badge/✨_新登場-MediaGo_Pro-ff6b6b?style=for-the-badge&logo=data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0id2hpdGUiPjxwYXRoIGQ9Ik0xMiAyTDMgN2wzIDMgNi00IDYgNCAzLTMtOS01eiIvPjxwYXRoIGQ9Ik0zIDE3bDkgNSA5LTUtMy0zLTYgNC02LTQtMyAzeiIvPjwvc3ZnPg==" alt="MediaGo Pro" />
|
||||
@@ -16,15 +22,14 @@
|
||||
<img src="https://img.shields.io/badge/🚀_今すぐ試す-オンライン版_インストール不要-2a82f6?style=for-the-badge" alt="Try Now" />
|
||||
</a>
|
||||
<br>
|
||||
<br>
|
||||
|
||||
<img alt="GitHub Downloads (all assets, all releases)" src="https://img.shields.io/github/downloads/caorushizi/mediago/total">
|
||||
<img alt="GitHub Downloads (all assets, latest release)" src="https://img.shields.io/github/downloads/caorushizi/mediago/latest/total">
|
||||
<img alt="GitHub Repo stars" src="https://img.shields.io/github/stars/caorushizi/mediago">
|
||||
<img alt="GitHub forks" src="https://img.shields.io/github/forks/caorushizi/mediago">
|
||||
<img alt="GitCode" src="https://gitcode.com/caorushizi/mediago/star/badge.svg">
|
||||
<br>
|
||||
<br>
|
||||
|
||||
|
||||
<a href="https://trendshift.io/repositories/11083" target="_blank">
|
||||
<img src="https://trendshift.io/api/badge/repositories/11083" alt="caorushizi%2Fmediago | Trendshift" style="width: 250px; height: 55px;" width="250" height="55"/>
|
||||
</a>
|
||||
@@ -32,120 +37,115 @@
|
||||
<hr />
|
||||
</div>
|
||||
|
||||
## Intro
|
||||
ビルトインのスニッフィング機能を備えたクロスプラットフォームの動画ダウンローダー —— ページを開いて、欲しいリソースを選んで、保存するだけ。パケットキャプチャ不要、ブラウザ拡張の設定不要、コマンドラインの操作も不要です。
|
||||
|
||||
本プロジェクトはm3u8ビデオ抽出ツール、ストリーミングダウンロード、m3u8ダウンロードをサポートしています。
|
||||
## ✨ 主な機能
|
||||
|
||||
- **✅ パケットキャプチャ不要**: ソフトウェアに内蔵されたブラウザを使用して、ウェブページ内のビデオリソースを簡単に検出し、検出したリソースリストからダウンロードしたいリソースを選択することで、シンプルかつ迅速にダウンロードできます。
|
||||
- **📱 モバイル再生**: PCとモバイルデバイス間で簡単にシームレスに切り替えが可能で、ダウンロードが完了した後はスマートフォンでビデオを視聴できます。
|
||||
- **⚡️ バッチダウンロード**: 複数のビデオやライブストリームリソースを同時にダウンロードでき、高速帯域幅を無駄にしません。
|
||||
- **🎉 Dockerデプロイメントサポート**: WebエンドをDockerでデプロイすることができ、簡単かつ便利です。
|
||||
### 🌐 ブラウザ拡張機能(Chrome / Edge)
|
||||
|
||||
## Quickstart
|
||||
ウェブを閲覧中に気になる動画を見つけたら → 拡張機能のアイコンをクリック → ワンクリックで MediaGo に送信。ページ内のダウンロード可能なリソースを自動検出し、ツールバーアイコンのバッジに件数を表示します。YouTube、Bilibili をはじめ主要な動画サイトに対応。拡張機能はデスクトップ版インストーラーに同梱されているので、**設定 → その他の設定 → ブラウザ拡張ディレクトリ** から直接インストールフォルダを開けます。
|
||||
|
||||
コードを実行するには、Node.jsとpnpmが必要です。Node.jsは公式ウェブサイトからダウンロードしてインストールし、pnpmは`npm i -g pnpm`コマンドでインストールできます。
|
||||
### 🎬 YouTube と 1000+ サイト対応
|
||||
|
||||
## コードの実行
|
||||
内部では yt-dlp を使用。YouTube、Twitter/X、Instagram、Reddit など [1000 以上の動画サイト](https://github.com/yt-dlp/yt-dlp/blob/master/supportedsites.md) をサポートします。
|
||||
|
||||
### 🦞 AI アシスタントで動画をダウンロード — OpenClaw Skill
|
||||
|
||||
Claude Code や Cursor などの AI コーディングアシスタントを使っていますか?MediaGo Skill をインストールすれば、AI に「この動画をダウンロードして:<URL>」と言うだけでダウンロードが始まります。
|
||||
|
||||
```shell
|
||||
# コードのダウンロードです
|
||||
git clone https://github.com/caorushizi/mediago.git
|
||||
|
||||
# インストール依存症です
|
||||
pnpm i
|
||||
|
||||
# 開発環境です
|
||||
pnpm dev
|
||||
|
||||
# 梱包して運行します
|
||||
pnpm release
|
||||
|
||||
# dockerミラーリングを構築します
|
||||
docker buildx build -t caorushizi/mediago:latest .
|
||||
|
||||
# docker启动
|
||||
docker run -d --name mediago -p 8899:8899 -v /root/mediago:/root/mediago registry.cn-beijing.aliyuncs.com/caorushizi/mediago
|
||||
|
||||
npx clawhub@latest install mediago
|
||||
```
|
||||
|
||||
## Releases
|
||||
### 🔌 他のツールと連携
|
||||
|
||||
### v3.0.0 (2024.10.7 発売)
|
||||
MediaGo は完全な HTTP API を提供します。スクリプト、自動化ツール、他のアプリから直接ダウンロードタスクの作成、進捗の取得、リスト管理が可能です。ブラウザ拡張機能はこの API を介してデスクトップアプリと通信しており、自分のワークフローに組み込むこともできます。
|
||||
|
||||
#### ソフトウェアダウンロード
|
||||
### 🎞️ 内蔵フォーマット変換
|
||||
|
||||
- [【mediago】 windows(インストーラー版) v3.0.0](https://github.com/caorushizi/mediago/releases/download/v3.0.0/mediago-setup-win32-x64-3.0.0.exe)
|
||||
- [【mediago】 windows(ポータブル版) v3.0.0](https://github.com/caorushizi/mediago/releases/download/v3.0.0/mediago-portable-win32-x64-3.0.0.exe)
|
||||
- [【mediago】 macos arm64(Appleチップ) v3.0.0](https://github.com/caorushizi/mediago/releases/download/v3.0.0/mediago-setup-darwin-arm64-3.0.0.dmg)
|
||||
- [【mediago】 macos x64(Intelチップ) v3.0.0](https://github.com/caorushizi/mediago/releases/download/v3.0.0/mediago-setup-darwin-x64-3.0.0.dmg)
|
||||
- [【mediago】 linux v3.0.0](https://github.com/caorushizi/mediago/releases/download/v3.0.0/mediago-setup-linux-amd64-3.0.0.deb)
|
||||
- 【mediago】 docker v3.0 `docker run -d --name mediago -p 8899:8899 -v /root/mediago:/root/mediago registry.cn-beijing.aliyuncs.com/caorushizi/mediago:v3.0.0`
|
||||
ダウンロード完了後、MediaGo 内で他のフォーマットや画質に変換できます。ffmpeg を別途起動する必要はありません。
|
||||
|
||||
#### 国内ダウンロード
|
||||
### 🐳 Docker でワンライン展開
|
||||
|
||||
- [【mediago】 windows(インストーラー版) v3.0.0](https://static.ziying.site/mediago/mediago-setup-win32-x64-3.0.0.exe)
|
||||
- [【mediago】 windows(ポータブル版) v3.0.0](https://static.ziying.site/mediago/mediago-portable-win32-x64-3.0.0.exe)
|
||||
- [【mediago】 macos arm64(Appleチップ) v3.0.0](https://static.ziying.site/mediago/mediago-setup-darwin-arm64-3.0.0.dmg)
|
||||
- [【mediago】 macos x64(Intelチップ) v3.0.0](https://static.ziying.site/mediago/mediago-setup-darwin-x64-3.0.0-beta.5.dmg)
|
||||
- [【mediago】 linux v3.0.0](https://static.ziying.site/mediago/mediago-setup-linux-amd64-3.0.0.deb)
|
||||
- 【mediago】 docker v3.0 `docker run -d --name mediago -p 8899:8899 -v /root/mediago:/root/mediago registry.cn-beijing.aliyuncs.com/caorushizi/mediago:v3.0.0`
|
||||
サーバーにヘッドレスでインストールし、同じネットワーク内のどこからでも Web UI にアクセスできます:
|
||||
|
||||
### docker 宝塔パネルワンクリックデプロイ(推奨)
|
||||
```shell
|
||||
docker run -d --name mediago -p 8899:8899 -v /path/to/mediago:/app/mediago caorushizi/mediago:3.5.0
|
||||
```
|
||||
|
||||
1. 宝塔パネルをインストールし、[宝塔パネル](https://www.bt.cn/new/download.html?r=dk_mediago) の公式サイトから正式版のスクリプトを選択してインストールします。
|
||||
[Docker Hub](https://hub.docker.com/r/caorushizi/mediago) と GHCR(`ghcr.io/caorushizi/mediago`)の両方で配信しています。同じイメージなのでお好みのレジストリを。Intel / AMD (amd64) と ARM (arm64) の両方に対応。デスクトップ版は `127.0.0.1` と LAN IP の両方で待ち受けるため、同じ Wi-Fi のスマートフォンやタブレットからも Web UI を開けます。
|
||||
|
||||
2. インストール後、宝塔パネルにログインし、メニューから `Docker` をクリックします。初めてアクセスすると、`Docker` サービスをインストールするように指示されるので、「今すぐインストール」をクリックし、指示に従ってインストールを完了します。
|
||||
## 📷 スクリーンショット
|
||||
|
||||
3. インストールが完了したら、アプリストアで「MediaGo」を見つけ、インストールをクリックし、ドメイン名などの基本情報を設定してインストールを完了します。
|
||||

|
||||
|
||||
### ソフトウェアスクリーンショット
|
||||

|
||||
|
||||

|
||||

|
||||
|
||||
### 重要な更新
|
||||

|
||||
|
||||
- Web端のdockerデプロイをサポート
|
||||
- デスクトップ端のUIを更新
|
||||
## 📥 ダウンロード
|
||||
|
||||
### 更新ログ
|
||||
### v3.5.0(安定版)
|
||||
|
||||
- デスクトップ端のUIを更新
|
||||
- Web端のdockerデプロイをサポート
|
||||
- 新たにビデオ再生機能を追加、デスクトップとモバイル端両方で再生可能
|
||||
- Macでの画面表示ができない問題を修正
|
||||
- バッチダウンロードのインタラクションを最適化
|
||||
- Windowsのポータブル版(インストール不要)を追加
|
||||
- ダウンロードリストの最適化、ページ内の複数のビデオリソースを嗅ぎ取る機能を追加
|
||||
- 手動でお気に入りリストのインポートとエクスポートをサポート
|
||||
- ホームページのダウンロードリストエクスポートをサポート
|
||||
- 「新規ダウンロード」フォームのインタラクションロジックを最適化
|
||||
- UrlSchemeでアプリを開き、ダウンロードタスクを追加する機能をサポート
|
||||
- バグの修正とユーザー体験の向上
|
||||
- [Windows — インストーラー版](https://github.com/caorushizi/mediago/releases/download/v3.5.0/mediago-community-setup-win32-x64-3.5.0.exe)
|
||||
- [Windows — ポータブル版](https://github.com/caorushizi/mediago/releases/download/v3.5.0/mediago-community-portable-win32-x64-3.5.0.exe)
|
||||
- [macOS — Apple Silicon (arm64)](https://github.com/caorushizi/mediago/releases/download/v3.5.0/mediago-community-setup-darwin-arm64-3.5.0.dmg)
|
||||
- [macOS — Intel (x64)](https://github.com/caorushizi/mediago/releases/download/v3.5.0/mediago-community-setup-darwin-x64-3.5.0.dmg)
|
||||
- [Linux (deb)](https://github.com/caorushizi/mediago/releases/download/v3.5.0/mediago-community-setup-linux-amd64-3.5.0.deb)
|
||||
- [**Docker Hub**](https://hub.docker.com/r/caorushizi/mediago):`docker run -d --name mediago -p 8899:8899 -v /path/to/mediago:/app/mediago caorushizi/mediago:3.5.0`
|
||||
- **GHCR**:`docker run -d --name mediago -p 8899:8899 -v /path/to/mediago:/app/mediago ghcr.io/caorushizi/mediago:3.5.0`
|
||||
|
||||
## ソフトウェアスクリーンショット
|
||||
過去のバージョンは [GitHub Releases ページ](https://github.com/caorushizi/mediago/releases) をご覧ください。
|
||||
|
||||

|
||||
### 🪄 宝塔パネルでワンクリック Docker デプロイ
|
||||
|
||||

|
||||
1. [宝塔パネル公式サイト](https://www.bt.cn/new/download.html?r=dk_mediago) から正式版のスクリプトをダウンロードしてインストール
|
||||
2. 宝塔パネルにログイン、メニューから **Docker** をクリック。初回アクセス時に Docker サービスのインストールを求められるので、「今すぐインストール」をクリックして完了
|
||||
3. アプリストアで **MediaGo** を見つけて、インストールをクリック、ドメインなどの基本情報を設定すれば完了
|
||||
|
||||

|
||||
## 📝 v3.5.0 の新機能
|
||||
|
||||

|
||||
- **🌐 ブラウザ拡張機能** — 任意のサイトで動画をスニッフィング、ワンクリックで MediaGo に送信
|
||||
- **🎬 YouTube + 1000+ サイト** — yt-dlp による対応
|
||||
- **🦞 OpenClaw Skill** — AI コーディングアシスタント経由でダウンロード
|
||||
- **🔌 HTTP API** — スクリプト、自動化、サードパーティツールとの統合
|
||||
- **🎞️ アプリ内フォーマット変換** — 出力形式と画質を選択
|
||||
- **🐳 Docker デプロイの簡素化** — 単一ディレクトリをマウント、GHCR のマルチアーキテクチャイメージ
|
||||
- **⚡ 起動の高速化** — バックエンド書き換え、メモリ使用量の削減、内蔵動画プレーヤー
|
||||
|
||||
## 技術スタック
|
||||
## 🛠️ 技術スタック
|
||||
|
||||
- react <https://react.dev/>
|
||||
- electron <https://www.electronjs.org>
|
||||
- koa <https://koajs.com>
|
||||
- vite <https://cn.vitejs.dev>
|
||||
- antd <https://ant.design>
|
||||
- tailwindcss <https://tailwindcss.com>
|
||||
- shadcn <https://ui.shadcn.com/>
|
||||
- inversify <https://inversify.io>
|
||||
- typeorm <https://typeorm.io>
|
||||
[](https://react.dev/)
|
||||
[](https://www.electronjs.org)
|
||||
[](https://vitejs.dev)
|
||||
[](https://www.typescriptlang.org/)
|
||||
[](https://tailwindcss.com)
|
||||
[](https://ui.shadcn.com/)
|
||||
[](https://go.dev/)
|
||||
[](https://ant.design)
|
||||
|
||||
## 感謝
|
||||
## 🙏 謝辞
|
||||
|
||||
- N_m2u8DL-CLI は <https://github.com/nilaoda/N_m3u8DL-CLI> から来ています
|
||||
- N_m3u8DL-RE は <https://github.com/nilaoda/N_m3u8DL-RE> から来ています
|
||||
- mediago は <https://github.com/caorushizi/hls-downloader> から来ています
|
||||
- [N_m3u8DL-RE](https://github.com/nilaoda/N_m3u8DL-RE)
|
||||
- [BBDown](https://github.com/nilaoda/BBDown)
|
||||
- [yt-dlp](https://github.com/yt-dlp/yt-dlp)
|
||||
- [aria2](https://aria2.github.io/)
|
||||
- [mediago-core](https://github.com/caorushizi/mediago-core)
|
||||
|
||||
## ⚖️ 免責事項
|
||||
|
||||
> **本プロジェクトは学習および研究目的にのみ提供されるものであり、商用または違法な目的での使用はご遠慮ください。**
|
||||
>
|
||||
> 1. 本プロジェクトが提供するすべてのコードおよび機能は、ストリーミング技術の学習のための参考資料としてのみ使用されます。利用者は所在地域の法令を遵守してください。
|
||||
> 2. 本プロジェクトを使用してダウンロードされたコンテンツの著作権は、原コンテンツの所有者に帰属します。利用者はダウンロード後 24 時間以内にコンテンツを削除するか、著作権者の許可を取得する必要があります。
|
||||
> 3. 本プロジェクトの開発者は、著作権で保護されたコンテンツのダウンロードや第三者プラットフォームへの影響を含め、利用者の行動に対して一切の責任を負いません。
|
||||
> 4. 大規模なスクレイピング、プラットフォームサービスの妨害、その他他者の合法的権利を侵害する行為に本プロジェクトを使用することは禁止されています。
|
||||
> 5. 本プロジェクトを使用することにより、あなたはこの免責事項を読み、同意したものとみなされます。同意しない場合は、直ちに本プロジェクトの使用を停止し、削除してください。
|
||||
|
||||
---
|
||||
|
||||
> ソースからビルドする場合は [CONTRIBUTING.md](./CONTRIBUTING.md)(英語)を参照してください。
|
||||
>
|
||||
> MediaGo の翻訳をご検討中の方は [TRANSLATION.md](./TRANSLATION.md)(英語)をご参照ください。
|
||||
|
||||
@@ -37,77 +37,62 @@
|
||||
<hr />
|
||||
</div>
|
||||
|
||||
## What is MediaGo?
|
||||
A cross-platform video downloader with built-in sniffing — point it at a
|
||||
page, pick what you want, and save. No packet capture, no browser
|
||||
extensions to configure, no fiddling with command-line tools.
|
||||
|
||||
A cross-platform streaming media downloader with built-in browser sniffing — grab m3u8, HLS, and more with zero packet-capture hassle.
|
||||
## ✨ What's inside
|
||||
|
||||
- **✅ No packet capture needed** — The built-in browser automatically detects video resources on any page. Just pick what you want from the detected list and download.
|
||||
- **📱 Watch on mobile** — Seamlessly switch between PC and mobile. Once a video is downloaded, scan a QR code to watch it on your phone.
|
||||
- **⚡️ Batch downloads** — Download multiple videos and live streams at the same time — no wasted bandwidth.
|
||||
- **🎉 Docker support** — Deploy the web UI via Docker for quick, headless operation.
|
||||
- **🦞 OpenClaw Skill** — Download videos with natural language through AI coding assistants (OpenClaw, Claude Code, etc.). Install with `npx clawhub@latest install mediago`.
|
||||
### 🌐 Browser extension for Chrome / Edge
|
||||
|
||||
## Quick Start
|
||||
See something you want on any site → click the extension → send it to
|
||||
MediaGo. Detects video resources automatically, shows the count on the
|
||||
toolbar badge, works with most mainstream video platforms including
|
||||
YouTube, Bilibili and more. Ships bundled with the Desktop app — open
|
||||
**Settings → More Settings → Browser extension directory** to find the
|
||||
install folder.
|
||||
|
||||
You need **Node.js** and **pnpm**. Install Node.js from the [official site](https://nodejs.org/), then install pnpm:
|
||||
### 🎬 YouTube and 1000+ sites
|
||||
|
||||
Powered by yt-dlp under the hood. Supports YouTube, Twitter/X, Instagram,
|
||||
Reddit and [over a thousand more video sites](https://github.com/yt-dlp/yt-dlp/blob/master/supportedsites.md).
|
||||
|
||||
### 🦞 AI assistants can download for you — OpenClaw Skill
|
||||
|
||||
Using Claude Code, Cursor or another AI coding assistant? Install the
|
||||
MediaGo skill and just say _"please download this video: <url>"_.
|
||||
The AI handles the rest.
|
||||
|
||||
```shell
|
||||
npm i -g pnpm
|
||||
npx clawhub@latest install mediago
|
||||
```
|
||||
|
||||
## Running locally
|
||||
### 🔌 Works with other tools
|
||||
|
||||
MediaGo exposes a full HTTP API — scripts, automation tools and other
|
||||
apps can create download tasks, query progress and manage the list
|
||||
directly. The browser extension uses this same API to talk to the desktop
|
||||
app; anyone else can tap in too.
|
||||
|
||||
### 🎞️ Built-in format conversion
|
||||
|
||||
After a download finishes, convert it to another format or quality
|
||||
without leaving MediaGo. No more opening a separate tool for ffmpeg.
|
||||
|
||||
### 🐳 One-line Docker deployment
|
||||
|
||||
Headless install on your server, then access the web UI from anywhere on
|
||||
the same network:
|
||||
|
||||
```shell
|
||||
# Clone the repo
|
||||
git clone https://github.com/caorushizi/mediago.git
|
||||
|
||||
# Install dependencies
|
||||
pnpm install
|
||||
|
||||
# Start the Electron desktop app (dev mode)
|
||||
pnpm dev:electron
|
||||
|
||||
# — or — start the web server (dev mode)
|
||||
pnpm dev:server
|
||||
|
||||
# Package the Electron app for distribution
|
||||
pnpm pack:electron
|
||||
|
||||
# Package the web server for distribution
|
||||
pnpm pack:server
|
||||
docker run -d --name mediago -p 8899:8899 -v /path/to/mediago:/app/mediago caorushizi/mediago:3.5.0
|
||||
```
|
||||
|
||||
## Releases
|
||||
Available on [Docker Hub](https://hub.docker.com/r/caorushizi/mediago) and GHCR (`ghcr.io/caorushizi/mediago`) — same image, pick whichever registry is faster for you. Supports both Intel / AMD (amd64) and ARM (arm64). On the desktop build,
|
||||
MediaGo listens on both `127.0.0.1` and your LAN IP out of the box, so
|
||||
phones and tablets on the same Wi-Fi can open the web UI too.
|
||||
|
||||
### v3.5.0-beta.0 (Apr 3, 2026)
|
||||
|
||||
#### Downloads
|
||||
|
||||
- [Windows (installer) v3.5.0-beta.0](https://github.com/caorushizi/mediago/releases/download/v3.5.0-beta.0/mediago-community-setup-win32-x64-3.5.0-beta.0.exe)
|
||||
- [Windows (portable) v3.5.0-beta.0](https://github.com/caorushizi/mediago/releases/download/v3.5.0-beta.0/mediago-community-portable-win32-x64-3.5.0-beta.0.exe)
|
||||
- [macOS ARM64 (Apple Silicon) v3.5.0-beta.0](https://github.com/caorushizi/mediago/releases/download/v3.5.0-beta.0/mediago-community-setup-darwin-arm64-3.5.0-beta.0.dmg)
|
||||
- [macOS x64 (Intel) v3.5.0-beta.0](https://github.com/caorushizi/mediago/releases/download/v3.5.0-beta.0/mediago-community-setup-darwin-x64-3.5.0-beta.0.dmg)
|
||||
- [Linux v3.5.0-beta.0](https://github.com/caorushizi/mediago/releases/download/v3.5.0-beta.0/mediago-community-setup-linux-amd64-3.5.0-beta.0.deb)
|
||||
- Docker v3.5.0-beta.0: `docker run -d --name mediago -p 8899:8899 -v /path/to/mediago:/app/mediago ghcr.io/caorushizi/mediago:3.5.0-beta.0`
|
||||
|
||||
### v3.0.0 (Oct 7, 2024)
|
||||
|
||||
#### Downloads
|
||||
|
||||
- [Windows (installer) v3.0.0](https://github.com/caorushizi/mediago/releases/download/v3.0.0/mediago-setup-win32-x64-3.0.0.exe)
|
||||
- [Windows (portable) v3.0.0](https://github.com/caorushizi/mediago/releases/download/v3.0.0/mediago-portable-win32-x64-3.0.0.exe)
|
||||
- [macOS ARM64 (Apple Silicon) v3.0.0](https://github.com/caorushizi/mediago/releases/download/v3.0.0/mediago-setup-darwin-arm64-3.0.0.dmg)
|
||||
- [macOS x64 (Intel) v3.0.0](https://github.com/caorushizi/mediago/releases/download/v3.0.0/mediago-setup-darwin-x64-3.0.0.dmg)
|
||||
- [Linux v3.0.0](https://github.com/caorushizi/mediago/releases/download/v3.0.0/mediago-setup-linux-amd64-3.0.0.deb)
|
||||
- Docker: `docker run -d --name mediago -p 8899:8899 -v /path/to/mediago:/app/mediago ghcr.io/caorushizi/mediago:latest`
|
||||
|
||||
### One-click Docker deployment via BT Panel
|
||||
|
||||
1. Install [BT Panel](https://www.bt.cn/new/download.html?r=dk_mediago) using the official script.
|
||||
2. Log in to the panel, click **Docker** in the sidebar, and follow the prompts to install the Docker service.
|
||||
3. Find **MediaGo** in the app store, click **Install**, configure your domain, and you're done.
|
||||
|
||||
## Screenshots
|
||||
## 📷 Screenshots
|
||||
|
||||

|
||||
|
||||
@@ -117,40 +102,59 @@ pnpm pack:server
|
||||
|
||||

|
||||
|
||||
## Changelog (v3.0.0)
|
||||
## 📥 Download
|
||||
|
||||
- Docker deployment for the web UI
|
||||
- Redesigned desktop UI
|
||||
- Video playback on desktop and mobile
|
||||
- Fixed blank window on macOS launch
|
||||
- Improved batch download UX
|
||||
- Added Windows portable build (no install required)
|
||||
- Enhanced resource sniffing — detect multiple videos per page
|
||||
- Import / export favorites
|
||||
- Export the download list from the home page
|
||||
- Improved "New download" form flow
|
||||
- Open the app and add downloads via URL scheme
|
||||
- Various bug fixes and UX improvements
|
||||
### v3.5.0 (stable)
|
||||
|
||||
## Tech Stack
|
||||
- [Windows — installer](https://github.com/caorushizi/mediago/releases/download/v3.5.0/mediago-community-setup-win32-x64-3.5.0.exe)
|
||||
- [Windows — portable](https://github.com/caorushizi/mediago/releases/download/v3.5.0/mediago-community-portable-win32-x64-3.5.0.exe)
|
||||
- [macOS — Apple Silicon (arm64)](https://github.com/caorushizi/mediago/releases/download/v3.5.0/mediago-community-setup-darwin-arm64-3.5.0.dmg)
|
||||
- [macOS — Intel (x64)](https://github.com/caorushizi/mediago/releases/download/v3.5.0/mediago-community-setup-darwin-x64-3.5.0.dmg)
|
||||
- [Linux (deb)](https://github.com/caorushizi/mediago/releases/download/v3.5.0/mediago-community-setup-linux-amd64-3.5.0.deb)
|
||||
- [**Docker Hub**](https://hub.docker.com/r/caorushizi/mediago): `docker run -d --name mediago -p 8899:8899 -v /path/to/mediago:/app/mediago caorushizi/mediago:3.5.0`
|
||||
- **GHCR**: `docker run -d --name mediago -p 8899:8899 -v /path/to/mediago:/app/mediago ghcr.io/caorushizi/mediago:3.5.0`
|
||||
|
||||
- [React](https://react.dev/)
|
||||
- [Electron](https://www.electronjs.org)
|
||||
- [Koa](https://koajs.com)
|
||||
- [Vite](https://vitejs.dev)
|
||||
- [Ant Design](https://ant.design)
|
||||
- [Tailwind CSS](https://tailwindcss.com)
|
||||
- [shadcn/ui](https://ui.shadcn.com/)
|
||||
- [Inversify](https://inversify.io)
|
||||
Browsing older releases? See the [GitHub Releases page](https://github.com/caorushizi/mediago/releases).
|
||||
|
||||
## Acknowledgements
|
||||
### 🪄 One-click Docker deployment via BT Panel
|
||||
|
||||
1. Install [BT Panel](https://www.bt.cn/new/download.html?r=dk_mediago) using the official script.
|
||||
2. Log in to the panel, click **Docker** in the sidebar and finish the
|
||||
Docker service setup (just follow the prompts).
|
||||
3. Find **MediaGo** in the app store, click **Install**, configure your
|
||||
domain, and you're done.
|
||||
|
||||
## 📝 What's new in v3.5.0
|
||||
|
||||
- **🌐 Browser extension** — sniff videos on any site, send to MediaGo
|
||||
in one click
|
||||
- **🎬 YouTube + 1000+ sites** — powered by yt-dlp
|
||||
- **🦞 OpenClaw Skill** — download videos via AI coding assistants
|
||||
- **🔌 HTTP API** — integrate with scripts, automation and third-party tools
|
||||
- **🎞️ In-app format conversion** — choose output format and quality
|
||||
- **🐳 Simpler Docker deployment** — mount a single folder, multi-arch images on GHCR
|
||||
- **⚡ Faster startup** — backend rewrite, lower memory footprint, built-in video player
|
||||
|
||||
## 🛠️ Built with
|
||||
|
||||
[](https://react.dev/)
|
||||
[](https://www.electronjs.org)
|
||||
[](https://vitejs.dev)
|
||||
[](https://www.typescriptlang.org/)
|
||||
[](https://tailwindcss.com)
|
||||
[](https://ui.shadcn.com/)
|
||||
[](https://go.dev/)
|
||||
[](https://ant.design)
|
||||
|
||||
## 🙏 Acknowledgements
|
||||
|
||||
- [N_m3u8DL-RE](https://github.com/nilaoda/N_m3u8DL-RE)
|
||||
- [BBDown](https://github.com/nilaoda/BBDown)
|
||||
- [yt-dlp](https://github.com/yt-dlp/yt-dlp)
|
||||
- [aria2](https://aria2.github.io/)
|
||||
- [mediago-core](https://github.com/caorushizi/mediago-core)
|
||||
|
||||
## Disclaimer
|
||||
## ⚖️ Disclaimer
|
||||
|
||||
> **This project is for educational and research purposes only. Do not use it for any commercial or illegal purposes.**
|
||||
>
|
||||
@@ -159,3 +163,9 @@ pnpm pack:server
|
||||
> 3. The developers of this project are not responsible for any actions taken by users, including but not limited to downloading copyrighted content or impacting third-party platforms.
|
||||
> 4. Using this project for mass scraping, disrupting platform services, or any activity that infringes upon the legitimate rights of others is strictly prohibited.
|
||||
> 5. By using this project you acknowledge that you have read and agree to this disclaimer. If you do not agree, stop using the project and delete it immediately.
|
||||
|
||||
---
|
||||
|
||||
> Building from source? See [CONTRIBUTING.md](./CONTRIBUTING.md).
|
||||
>
|
||||
> Translating MediaGo? See [TRANSLATION.md](./TRANSLATION.md).
|
||||
|
||||
+76
-97
@@ -37,131 +37,104 @@
|
||||
<hr />
|
||||
</div>
|
||||
|
||||
## Intro
|
||||
跨平台视频下载器,内置嗅探 —— 打开网页、选一下想要的资源、保存完事。不用抓包、不用折腾浏览器插件、不用面对命令行。
|
||||
|
||||
本项目支持 m3u8 视频在线提取工具 流媒体下载 m3u8 下载。
|
||||
## ✨ 主打功能
|
||||
|
||||
- **✅ 无需抓包**: 使用软件自带浏览器可以轻松嗅探网页中的视频资源,通过嗅探到的资源列表选择自己想要下载的资源,简单快速。
|
||||
- **📱 移动播放**: 可以轻松无缝的在 PC 和移动设备之前切换,下载完成后即可使用手机观看视频。
|
||||
- **⚡️ 批量下载**: 支持同时下载多个视频和直播资源,高速带宽不闲置。
|
||||
- **🎉 支持 docker 部署**: 支持 docker 部署 web 端,方便快捷。
|
||||
- **🦞 OpenClaw Skill**: 支持通过 AI 编程助手(Openclaw、Claude Code 等)用自然语言下载视频,`npx clawhub@latest install mediago` 一键安装。
|
||||
### 🌐 浏览器扩展(Chrome / Edge)
|
||||
|
||||
## Quickstart
|
||||
浏览网页时遇到想下的视频 → 点扩展图标 → 一键发到 MediaGo。自动识别页面里的可下载资源,工具栏图标显示检测到的数量,主流视频网站(包括 YouTube、Bilibili 等)都能覆盖。扩展随桌面端安装包一起打包,在 **设置 → 更多设置 → 浏览器扩展目录** 就能找到安装文件夹。
|
||||
|
||||
运行代码需要 node 和 pnpm,node 需要在官网下载安装,pnpm 可以通过`npm i -g pnpm`安装。
|
||||
### 🎬 支持 YouTube 和 1000+ 站点
|
||||
|
||||
## 运行代码
|
||||
底层用的是 yt-dlp。支持 YouTube、Twitter/X、Instagram、Reddit 等 [一千多个视频站点](https://github.com/yt-dlp/yt-dlp/blob/master/supportedsites.md)。
|
||||
|
||||
### 🦞 让 AI 助手帮你下载 —— OpenClaw Skill
|
||||
|
||||
在用 Claude Code、Cursor 等 AI 编程助手?装上 MediaGo Skill 后直接跟 AI 说"帮我下载这个视频:<链接>"就行,剩下的交给 AI。
|
||||
|
||||
```shell
|
||||
# 代码下载
|
||||
git clone https://github.com/caorushizi/mediago.git
|
||||
|
||||
# 安装依赖
|
||||
pnpm install
|
||||
|
||||
# 首次安装需要 rebuild 一下
|
||||
pnpm rebuild:workspace
|
||||
|
||||
# electron 开发环境
|
||||
pnpm dev:electron
|
||||
|
||||
# electron 打包运行
|
||||
pnpm release:electron
|
||||
|
||||
# server 开发环境
|
||||
pnpm dev:server
|
||||
|
||||
# server 打包运行
|
||||
pnpm release:server
|
||||
|
||||
npx clawhub@latest install mediago
|
||||
```
|
||||
|
||||
## Releases
|
||||
### 🔌 可以和其他工具联动
|
||||
|
||||
### v3.5.0-beta.0 (2026.4.3 发布)
|
||||
MediaGo 提供一整套 HTTP 接口 —— 脚本、自动化工具、其他 App 都能直接调用 MediaGo 创建下载任务、查询进度、管理列表。浏览器扩展就是通过这套接口和桌面端对话的,你也可以接入自己的工作流。
|
||||
|
||||
### 软件下载
|
||||
### 🎞️ 内置格式转换
|
||||
|
||||
- [【mediago】 windows(安装版) v3.5.0-beta.0](https://github.com/caorushizi/mediago/releases/download/v3.5.0-beta.0/mediago-community-setup-win32-x64-3.5.0-beta.0.exe)
|
||||
- [【mediago】 windows(便携版) v3.5.0-beta.0](https://github.com/caorushizi/mediago/releases/download/v3.5.0-beta.0/mediago-community-portable-win32-x64-3.5.0-beta.0.exe)
|
||||
- [【mediago】 macos arm64(apple 芯片) v3.5.0-beta.0](https://github.com/caorushizi/mediago/releases/download/v3.5.0-beta.0/mediago-community-setup-darwin-arm64-3.5.0-beta.0.dmg)
|
||||
- [【mediago】 macos x64(intel 芯片) v3.5.0-beta.0](https://github.com/caorushizi/mediago/releases/download/v3.5.0-beta.0/mediago-community-setup-darwin-x64-3.5.0-beta.0.dmg)
|
||||
- [【mediago】 linux v3.5.0-beta.0](https://github.com/caorushizi/mediago/releases/download/v3.5.0-beta.0/mediago-community-setup-linux-amd64-3.5.0-beta.0.deb)
|
||||
- 【mediago】 docker v3.0 `docker run -d --name mediago -p 8899:8899 -v /path/to/mediago:/app/mediago ghcr.io/caorushizi/mediago:3.5.0-beta.0`
|
||||
下载完成后可以直接在 MediaGo 里转换格式、选画质,不用再打开别的软件。
|
||||
|
||||
### v3.0.0 (2024.10.7 发布)
|
||||
### 🐳 Docker 一键部署
|
||||
|
||||
#### 软件下载
|
||||
服务器端一条命令部署,局域网内任意设备都能打开 Web 界面:
|
||||
|
||||
- [【mediago】 windows(安装版) v3.0.0](https://github.com/caorushizi/mediago/releases/download/v3.0.0/mediago-setup-win32-x64-3.0.0.exe)
|
||||
- [【mediago】 windows(便携版) v3.0.0](https://github.com/caorushizi/mediago/releases/download/v3.0.0/mediago-portable-win32-x64-3.0.0.exe)
|
||||
- [【mediago】 macos arm64(apple 芯片) v3.0.0](https://github.com/caorushizi/mediago/releases/download/v3.0.0/mediago-setup-darwin-arm64-3.0.0.dmg)
|
||||
- [【mediago】 macos x64(intel 芯片) v3.0.0](https://github.com/caorushizi/mediago/releases/download/v3.0.0/mediago-setup-darwin-x64-3.0.0.dmg)
|
||||
- [【mediago】 linux v3.0.0](https://github.com/caorushizi/mediago/releases/download/v3.0.0/mediago-setup-linux-amd64-3.0.0.deb)
|
||||
- 【mediago】 docker `docker run -d --name mediago -p 8899:8899 -v /path/to/mediago:/app/mediago ghcr.io/caorushizi/mediago:latest`
|
||||
```shell
|
||||
docker run -d --name mediago -p 8899:8899 -v /path/to/mediago:/app/mediago caorushizi/mediago:3.5.0
|
||||
```
|
||||
|
||||
### docker 宝塔面板一键部署(推荐)
|
||||
在 [Docker Hub](https://hub.docker.com/r/caorushizi/mediago) 和 GHCR(`ghcr.io/caorushizi/mediago`)上同步发布 —— 同一份镜像,哪个源更快用哪个。支持 Intel / AMD (amd64) 和 ARM (arm64) 两种架构。桌面版同时监听 `127.0.0.1` 和局域网 IP,同一个 Wi-Fi 下的手机、平板可以直接打开 Web 界面。
|
||||
|
||||
1. 安装宝塔面板,前往 [宝塔面板](https://www.bt.cn/new/download.html?r=dk_mediago) 官网,选择正式版的脚本下载安装
|
||||
|
||||
2. 安装后登录宝塔面板,在菜单栏中点击 `Docker`,首次进入会提示安装`Docker`服务,点击立即安装,按提示完成安装
|
||||
|
||||
3. 安装完成后在应用商店中找到`MediaGo`,点击安装,配置域名等基本信息即可完成安装
|
||||
|
||||
### 软件截图
|
||||
## 📷 软件截图
|
||||
|
||||

|
||||
|
||||
### 重要更新
|
||||

|
||||
|
||||
- 支持 docker 部署 web 端
|
||||
- 更新桌面端 UI
|
||||
|
||||
### 更新日志
|
||||
|
||||
- 更新桌面端 UI
|
||||
- 支持 docker 部署 web 端
|
||||
- 新增视频播放,支持桌面端和移动端播放
|
||||
- 修复 mac 打开无法展示界面的问题
|
||||
- 优化了批量下载的交互
|
||||
- 添加了 windows 的便携版(免安装哦)
|
||||
- 优化了下载列表,支持页面中多个视频的嗅探
|
||||
- 支持收藏列表手动导入导出
|
||||
- 支持首页下载列表导出
|
||||
- 优化了【新建下载】表单的交互逻辑
|
||||
- 支持 UrlScheme 打开应用,并添加下载任务
|
||||
- 修复了一些 bug 并提升用户体验
|
||||
|
||||
## 软件截图
|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||

|
||||
|
||||

|
||||
|
||||
## 技术栈
|
||||
## 📥 下载
|
||||
|
||||
- react <https://react.dev/>
|
||||
- electron <https://www.electronjs.org>
|
||||
- koa <https://koajs.com>
|
||||
- vite <https://cn.vitejs.dev>
|
||||
- antd <https://ant.design>
|
||||
- tailwindcss <https://tailwindcss.com>
|
||||
- shadcn <https://ui.shadcn.com/>
|
||||
- inversify <https://inversify.io>
|
||||
- typeorm <https://typeorm.io>
|
||||
### v3.5.0(正式版)
|
||||
|
||||
## 鸣谢
|
||||
- [Windows — 安装版](https://github.com/caorushizi/mediago/releases/download/v3.5.0/mediago-community-setup-win32-x64-3.5.0.exe)
|
||||
- [Windows — 便携版](https://github.com/caorushizi/mediago/releases/download/v3.5.0/mediago-community-portable-win32-x64-3.5.0.exe)
|
||||
- [macOS — Apple Silicon (arm64)](https://github.com/caorushizi/mediago/releases/download/v3.5.0/mediago-community-setup-darwin-arm64-3.5.0.dmg)
|
||||
- [macOS — Intel (x64)](https://github.com/caorushizi/mediago/releases/download/v3.5.0/mediago-community-setup-darwin-x64-3.5.0.dmg)
|
||||
- [Linux (deb)](https://github.com/caorushizi/mediago/releases/download/v3.5.0/mediago-community-setup-linux-amd64-3.5.0.deb)
|
||||
- [**Docker Hub**](https://hub.docker.com/r/caorushizi/mediago):`docker run -d --name mediago -p 8899:8899 -v /path/to/mediago:/app/mediago caorushizi/mediago:3.5.0`
|
||||
- **GHCR**:`docker run -d --name mediago -p 8899:8899 -v /path/to/mediago:/app/mediago ghcr.io/caorushizi/mediago:3.5.0`
|
||||
|
||||
- N_m3u8DL-RE 来自于 <https://github.com/nilaoda/N_m3u8DL-RE>
|
||||
- BBDown 来自于 <https://github.com/nilaoda/BBDown>
|
||||
- mediago 来自于 <https://github.com/caorushizi/mediago-core>
|
||||
查看历史版本请移步 [GitHub Releases](https://github.com/caorushizi/mediago/releases)。
|
||||
|
||||
## 免责声明
|
||||
### 🪄 宝塔面板一键部署 Docker
|
||||
|
||||
1. 安装宝塔面板,前往 [宝塔面板官网](https://www.bt.cn/new/download.html?r=dk_mediago) 选择正式版的脚本下载安装
|
||||
2. 登录宝塔面板,在菜单栏中点击 **Docker**,首次进入会提示安装 Docker 服务,点击立即安装并按提示完成
|
||||
3. 在应用商店中找到 **MediaGo**,点击安装,配置域名等基本信息即可
|
||||
|
||||
## 📝 v3.5.0 更新要点
|
||||
|
||||
- **🌐 浏览器扩展**:任意网站一键嗅探视频、一键发到 MediaGo
|
||||
- **🎬 YouTube + 1000+ 站点**:集成 yt-dlp
|
||||
- **🦞 OpenClaw Skill**:通过 AI 编程助手下载视频
|
||||
- **🔌 开放 HTTP 接口**:接入脚本、自动化工具和其他应用
|
||||
- **🎞️ 内置格式转换**:选输出格式和画质
|
||||
- **🐳 Docker 部署简化**:挂载一个目录即可,多架构镜像已迁至 GHCR
|
||||
- **⚡ 启动更快**:后端重写,资源占用更低,内置视频播放器
|
||||
|
||||
## 🛠️ 技术栈
|
||||
|
||||
[](https://react.dev/)
|
||||
[](https://www.electronjs.org)
|
||||
[](https://vitejs.dev)
|
||||
[](https://www.typescriptlang.org/)
|
||||
[](https://tailwindcss.com)
|
||||
[](https://ui.shadcn.com/)
|
||||
[](https://go.dev/)
|
||||
[](https://ant.design)
|
||||
|
||||
## 🙏 鸣谢
|
||||
|
||||
- [N_m3u8DL-RE](https://github.com/nilaoda/N_m3u8DL-RE)
|
||||
- [BBDown](https://github.com/nilaoda/BBDown)
|
||||
- [yt-dlp](https://github.com/yt-dlp/yt-dlp)
|
||||
- [aria2](https://aria2.github.io/)
|
||||
- [mediago-core](https://github.com/caorushizi/mediago-core)
|
||||
|
||||
## ⚖️ 免责声明
|
||||
|
||||
> **本项目仅供学习和研究使用,请勿用于任何商业或非法用途。**
|
||||
>
|
||||
@@ -170,3 +143,9 @@ pnpm release:server
|
||||
> 3. 本项目开发者不对使用者的任何行为承担责任,包括但不限于:下载受版权保护的内容、对第三方平台造成的影响等。
|
||||
> 4. 禁止将本项目用于大规模抓取、破坏平台服务或任何侵犯他人合法权益的行为。
|
||||
> 5. 使用本项目即表示您已阅读并同意本免责声明。如不同意,请立即停止使用并删除本项目。
|
||||
|
||||
---
|
||||
|
||||
> 想从源码构建?见 [CONTRIBUTING.md](./CONTRIBUTING.md)(英文)。
|
||||
>
|
||||
> 想为 MediaGo 做翻译?见 [TRANSLATION.md](./TRANSLATION.md)(英文)。
|
||||
|
||||
+161
@@ -0,0 +1,161 @@
|
||||
# Contributing translations
|
||||
|
||||
Thanks for helping translate MediaGo! This guide walks you through adding a
|
||||
new language from scratch, with a live-preview workflow so you can iterate
|
||||
without rebuilding the app.
|
||||
|
||||
## TL;DR
|
||||
|
||||
```shell
|
||||
git clone https://github.com/caorushizi/mediago.git
|
||||
cd mediago
|
||||
pnpm install
|
||||
pnpm deps:download
|
||||
pnpm dev:electron
|
||||
```
|
||||
|
||||
1. Copy `packages/shared/common/src/i18n/resources/en.ts` to `<lang>.ts`,
|
||||
translate every value.
|
||||
2. Register the new locale (four small edits — see below).
|
||||
3. Open **Settings → Language**, pick your locale, and iterate. Vite HMR
|
||||
reflects edits in the running app within a second.
|
||||
4. Open a PR — we review and merge.
|
||||
|
||||
## Where strings live
|
||||
|
||||
- **Main app UI** (desktop + self-hosted web):
|
||||
`packages/shared/common/src/i18n/resources/{en,zh}.ts`
|
||||
- **Browser extension** (separate, smaller catalog):
|
||||
`packages/mediago-extension/src/i18n/resources/{en,zh}.ts`
|
||||
|
||||
Resources are plain TypeScript modules — each file exports a flat object of
|
||||
`key: "translation"` pairs. Keys are shared across languages; only values
|
||||
change.
|
||||
|
||||
## Adding a new language end-to-end
|
||||
|
||||
Example: French (`fr`). Adjust the code to whichever language you're adding.
|
||||
|
||||
### 1. Create the resource file
|
||||
|
||||
Copy `en.ts` to `fr.ts` in the same directory and translate every **value**.
|
||||
Leave all keys untouched:
|
||||
|
||||
```ts
|
||||
// packages/shared/common/src/i18n/resources/fr.ts
|
||||
export const fr = {
|
||||
// ...translated values...
|
||||
followSystem: "Système",
|
||||
chinese: "中文",
|
||||
english: "English",
|
||||
french: "Français", // add your language's own name
|
||||
displayLanguage: "Langue",
|
||||
// ...
|
||||
} as const;
|
||||
```
|
||||
|
||||
Don't forget to add the new `french: "Français"` key to **every** resource
|
||||
file (`en.ts`, `zh.ts`, and your new `fr.ts`) so the Settings dropdown can
|
||||
render it in each language.
|
||||
|
||||
### 2. Register the resource
|
||||
|
||||
Three tiny edits:
|
||||
|
||||
**`packages/shared/common/src/i18n/resources/index.ts`** — import the new
|
||||
locale and add it to both exports:
|
||||
|
||||
```ts
|
||||
import { fr } from "./fr";
|
||||
// ...
|
||||
export const i18nResources = { en, zh, fr } as const;
|
||||
export const SUPPORTED_LANGUAGES = ["en", "zh", "fr"] as const;
|
||||
export { en, zh, fr };
|
||||
```
|
||||
|
||||
**`packages/shared/common/src/i18n/config.ts`** — widen the
|
||||
`resolveAppLanguage` return type and the check inside:
|
||||
|
||||
```ts
|
||||
export function resolveAppLanguage(
|
||||
language: string | undefined,
|
||||
systemLocale: string | undefined,
|
||||
): "zh" | "en" | "fr" {
|
||||
if (language === "zh" || language === "en" || language === "fr") {
|
||||
return language;
|
||||
}
|
||||
// ...existing fallback...
|
||||
}
|
||||
```
|
||||
|
||||
**`packages/shared/common/src/types/index.ts`** — extend the `AppLanguage`
|
||||
enum:
|
||||
|
||||
```ts
|
||||
export enum AppLanguage {
|
||||
System = "system",
|
||||
ZH = "zh",
|
||||
EN = "en",
|
||||
FR = "fr",
|
||||
}
|
||||
```
|
||||
|
||||
### 3. Add the Settings dropdown option
|
||||
|
||||
**`apps/ui/src/pages/setting-page/index.tsx`** — inside the **Language**
|
||||
`<Select>`, add one line:
|
||||
|
||||
```tsx
|
||||
options={[
|
||||
{ label: t("followSystem"), value: AppLanguage.System },
|
||||
{ label: t("chinese"), value: AppLanguage.ZH },
|
||||
{ label: t("english"), value: AppLanguage.EN },
|
||||
{ label: t("french"), value: AppLanguage.FR }, // new
|
||||
]}
|
||||
```
|
||||
|
||||
### 4. (Optional) Translate the browser extension
|
||||
|
||||
Same pattern, under `packages/mediago-extension/src/i18n/resources/`. It's a
|
||||
much smaller catalog and lives in its own `index.ts`.
|
||||
|
||||
## Live preview workflow
|
||||
|
||||
The dev server uses **Vite HMR** — edits to any resource file are reflected
|
||||
in the running app almost instantly, no restart required.
|
||||
|
||||
```shell
|
||||
pnpm install
|
||||
pnpm deps:download # fetch ffmpeg / BBDown (first clone only)
|
||||
pnpm dev:electron # starts Electron with HMR
|
||||
```
|
||||
|
||||
Once the window is up, open **Settings → Language** and switch to your new
|
||||
locale. Then edit `fr.ts` in your editor — save, and the UI updates live.
|
||||
|
||||
Use this to catch overflowing strings, awkward wrapping, and untranslated
|
||||
values before opening the PR.
|
||||
|
||||
## Submitting the PR
|
||||
|
||||
- **Branch**: `i18n/add-<lang>` — e.g. `i18n/add-fr`.
|
||||
- **Commit**: follow [Conventional Commits](https://www.conventionalcommits.org/),
|
||||
e.g. `feat(i18n): add French translation`.
|
||||
- In the PR description, please include:
|
||||
- A screenshot of **Settings → Language** with your new locale selected.
|
||||
- A screenshot of at least one main screen (e.g. the download list) in
|
||||
the new language.
|
||||
- Confirmation that `pnpm check` passes locally.
|
||||
|
||||
## Tips
|
||||
|
||||
- **Keep placeholders intact.** Tokens like `{{count}}` or `{name}` are
|
||||
interpolated at runtime — copy them verbatim into your translation.
|
||||
- **Natural phrasing beats literal translation.** The English source is a
|
||||
guide, not a cage. Idiomatic phrasing in your language is always better.
|
||||
- **Unsure how a string is used?** Grep the key across the repo (e.g.
|
||||
`rg '"displayLanguage"'`) — you'll find the component that renders it,
|
||||
which gives you the UI context.
|
||||
|
||||
Questions? Comment on [issue #638](https://github.com/caorushizi/mediago/issues/638)
|
||||
or open a new discussion. Thanks for contributing! 🌍
|
||||
@@ -5,6 +5,28 @@ outline: deep
|
||||
|
||||
# 更新日志
|
||||
|
||||
## v3.5.0 (2026.4.22 发布)
|
||||
|
||||
### 软件下载
|
||||
|
||||
- [【mediago】 windows(安装版) v3.5.0](https://github.com/caorushizi/mediago/releases/download/v3.5.0/mediago-community-setup-win32-x64-3.5.0.exe)
|
||||
- [【mediago】 windows(便携版) v3.5.0](https://github.com/caorushizi/mediago/releases/download/v3.5.0/mediago-community-portable-win32-x64-3.5.0.exe)
|
||||
- [【mediago】 macos arm64(apple 芯片) v3.5.0](https://github.com/caorushizi/mediago/releases/download/v3.5.0/mediago-community-setup-darwin-arm64-3.5.0.dmg)
|
||||
- [【mediago】 macos x64(intel 芯片) v3.5.0](https://github.com/caorushizi/mediago/releases/download/v3.5.0/mediago-community-setup-darwin-x64-3.5.0.dmg)
|
||||
- [【mediago】 linux v3.5.0](https://github.com/caorushizi/mediago/releases/download/v3.5.0/mediago-community-setup-linux-amd64-3.5.0.deb)
|
||||
- [**Docker Hub**](https://hub.docker.com/r/caorushizi/mediago):`docker run -d --name mediago -p 8899:8899 -v /path/to/mediago:/app/mediago caorushizi/mediago:3.5.0`
|
||||
- **GHCR**:`docker run -d --name mediago -p 8899:8899 -v /path/to/mediago:/app/mediago ghcr.io/caorushizi/mediago:3.5.0`
|
||||
|
||||
### 主要更新
|
||||
|
||||
- **🌐 浏览器扩展(Chrome / Edge)** —— 任意网站一键嗅探视频、一键发到 MediaGo
|
||||
- **🎬 支持 YouTube 和 1000+ 站点** —— 集成 yt-dlp
|
||||
- **🦞 OpenClaw Skill** —— 通过 AI 编程助手用自然语言下载视频
|
||||
- **🔌 开放 HTTP 接口** —— 支持脚本、自动化工具、第三方应用接入
|
||||
- **🎞️ 内置视频格式转换** —— 下载完成后在应用内选输出格式和画质
|
||||
- **🐳 Docker 部署简化** —— 镜像迁至 GitHub Container Registry(GHCR),支持 x86 / ARM 双架构,挂载单一目录即可
|
||||
- **⚡ 启动更快** —— 后端用 Go 重写,内存占用更低,内置视频播放器
|
||||
|
||||
## v3.0.0 (2024.10.7 发布)
|
||||
|
||||
### 软件下载
|
||||
|
||||
@@ -5,6 +5,28 @@ outline: deep
|
||||
|
||||
# Changelog
|
||||
|
||||
## v3.5.0 (Released on 2026.4.22)
|
||||
|
||||
### Software Downloads
|
||||
|
||||
- [【mediago】 Windows (Installer) v3.5.0](https://github.com/caorushizi/mediago/releases/download/v3.5.0/mediago-community-setup-win32-x64-3.5.0.exe)
|
||||
- [【mediago】 Windows (Portable) v3.5.0](https://github.com/caorushizi/mediago/releases/download/v3.5.0/mediago-community-portable-win32-x64-3.5.0.exe)
|
||||
- [【mediago】 macOS arm64 (Apple Silicon) v3.5.0](https://github.com/caorushizi/mediago/releases/download/v3.5.0/mediago-community-setup-darwin-arm64-3.5.0.dmg)
|
||||
- [【mediago】 macOS x64 (Intel) v3.5.0](https://github.com/caorushizi/mediago/releases/download/v3.5.0/mediago-community-setup-darwin-x64-3.5.0.dmg)
|
||||
- [【mediago】 Linux v3.5.0](https://github.com/caorushizi/mediago/releases/download/v3.5.0/mediago-community-setup-linux-amd64-3.5.0.deb)
|
||||
- [**Docker Hub**](https://hub.docker.com/r/caorushizi/mediago): `docker run -d --name mediago -p 8899:8899 -v /path/to/mediago:/app/mediago caorushizi/mediago:3.5.0`
|
||||
- **GHCR**: `docker run -d --name mediago -p 8899:8899 -v /path/to/mediago:/app/mediago ghcr.io/caorushizi/mediago:3.5.0`
|
||||
|
||||
### Highlights
|
||||
|
||||
- **🌐 Browser extension (Chrome / Edge)** — one-click video sniffing on any site, sent straight to MediaGo.
|
||||
- **🎬 YouTube and 1000+ sites** — powered by yt-dlp.
|
||||
- **🦞 OpenClaw Skill** — download videos through AI coding assistants with natural language.
|
||||
- **🔌 Open HTTP API** — integrate with scripts, automation and third-party tools.
|
||||
- **🎞️ In-app format conversion** — pick output format and quality after a download completes.
|
||||
- **🐳 Simpler Docker deployment** — multi-arch images (x86 / ARM) on GitHub Container Registry, mount a single folder.
|
||||
- **⚡ Faster startup** — backend rewritten in Go, lower memory footprint, built-in video player.
|
||||
|
||||
## v3.0.0 (Released on 2024.10.7)
|
||||
|
||||
### Software Downloads
|
||||
|
||||
+18
-25
@@ -15,42 +15,35 @@ MediaGo QQ Feedback Group 1: 574209001
|
||||
|
||||
::: info
|
||||
|
||||
v3.0 is the latest version. Please feel free to provide feedback within version 3.0, and we will address it as soon as possible.
|
||||
v3.5 is the latest version. Please feel free to provide feedback in this release and we will address it as quickly as possible.
|
||||
|
||||
:::
|
||||
|
||||
## Download and Installation
|
||||
|
||||
### v3.0.0 (Released on October 7, 2024)
|
||||
### v3.5.0 (Released on April 22, 2026)
|
||||
|
||||
#### Software Download
|
||||
|
||||
- [【mediago】 Windows (Installer) v3.0.0](https://github.com/caorushizi/mediago/releases/download/v3.0.0/mediago-setup-win32-x64-3.0.0.exe)
|
||||
- [【mediago】 Windows (Portable) v3.0.0](https://github.com/caorushizi/mediago/releases/download/v3.0.0/mediago-portable-win32-x64-3.0.0.exe)
|
||||
- [【mediago】 macOS arm64 (Apple Silicon) v3.0.0](https://github.com/caorushizi/mediago/releases/download/v3.0.0/mediago-setup-darwin-arm64-3.0.0.dmg)
|
||||
- [【mediago】 macOS x64 (Intel) v3.0.0](https://github.com/caorushizi/mediago/releases/download/v3.0.0/mediago-setup-darwin-x64-3.0.0.dmg)
|
||||
- [【mediago】 Linux v3.0.0](https://github.com/caorushizi/mediago/releases/download/v3.0.0/mediago-setup-linux-amd64-3.0.0.deb)
|
||||
- 【mediago】 Docker v3.0 `docker run -d --name mediago -p 8899:8899 -v /path/to/mediago:/app/mediago ghcr.io/caorushizi/mediago:latest`
|
||||
- [【mediago】 Windows (Installer) v3.5.0](https://github.com/caorushizi/mediago/releases/download/v3.5.0/mediago-community-setup-win32-x64-3.5.0.exe)
|
||||
- [【mediago】 Windows (Portable) v3.5.0](https://github.com/caorushizi/mediago/releases/download/v3.5.0/mediago-community-portable-win32-x64-3.5.0.exe)
|
||||
- [【mediago】 macOS arm64 (Apple Silicon) v3.5.0](https://github.com/caorushizi/mediago/releases/download/v3.5.0/mediago-community-setup-darwin-arm64-3.5.0.dmg)
|
||||
- [【mediago】 macOS x64 (Intel) v3.5.0](https://github.com/caorushizi/mediago/releases/download/v3.5.0/mediago-community-setup-darwin-x64-3.5.0.dmg)
|
||||
- [【mediago】 Linux v3.5.0](https://github.com/caorushizi/mediago/releases/download/v3.5.0/mediago-community-setup-linux-amd64-3.5.0.deb)
|
||||
- [**Docker Hub**](https://hub.docker.com/r/caorushizi/mediago): `docker run -d --name mediago -p 8899:8899 -v /path/to/mediago:/app/mediago caorushizi/mediago:3.5.0`
|
||||
- **GHCR**: `docker run -d --name mediago -p 8899:8899 -v /path/to/mediago:/app/mediago ghcr.io/caorushizi/mediago:3.5.0`
|
||||
|
||||
#### Important Updates
|
||||
Older releases are on the [GitHub Releases page](https://github.com/caorushizi/mediago/releases).
|
||||
|
||||
- Support for Docker deployment of the web version.
|
||||
- Updated desktop UI.
|
||||
#### What's New
|
||||
|
||||
#### Changelog
|
||||
|
||||
- Support for Docker deployment of the web version.
|
||||
- Updated desktop UI.
|
||||
- Added video playback, supporting both desktop and mobile versions.
|
||||
- Fixed an issue where macOS could not display the interface.
|
||||
- Optimized the interaction for batch downloads.
|
||||
- Added a portable version for Windows (no installation required).
|
||||
- Optimized the download list, supporting sniffing of multiple videos on a page.
|
||||
- Supports manual import/export of the favorite list.
|
||||
- Supports export of the homepage download list.
|
||||
- Optimized the interaction logic for the "New Download" form.
|
||||
- Supports UrlScheme to open the app and add download tasks.
|
||||
- Fixed some bugs and improved the user experience.
|
||||
- **Browser extension** (Chrome / Edge) — one-click video sniffing on any site.
|
||||
- **YouTube and 1000+ sites** — powered by yt-dlp.
|
||||
- **OpenClaw Skill** — download videos through AI coding assistants.
|
||||
- **Open HTTP API** — integrate with scripts, automation and third-party tools.
|
||||
- **In-app format conversion** — pick output format and quality after downloading.
|
||||
- **Simpler Docker deployment** — multi-arch images on GHCR, mount a single folder.
|
||||
- **Faster startup** — backend rewritten in Go, lower memory footprint, built-in player.
|
||||
|
||||
## Operation Instructions
|
||||
|
||||
|
||||
+10
-7
@@ -25,7 +25,7 @@ MacOS 使用
|
||||
|
||||
## 下载安装
|
||||
|
||||
### v3.0.1 (2025.1.14 发布)
|
||||
### v3.5.0(2026.4.22 发布)
|
||||
|
||||
::: tip
|
||||
国内用户可以通过网盘下载
|
||||
@@ -38,12 +38,15 @@ MacOS 使用
|
||||
|
||||
:::
|
||||
|
||||
- [【mediago】 windows(安装版) v3.5.0-beta.0](https://github.com/caorushizi/mediago/releases/download/v3.5.0-beta.0/mediago-community-setup-win32-x64-3.5.0-beta.0.exe)
|
||||
- [【mediago】 windows(便携版) v3.5.0-beta.0](https://github.com/caorushizi/mediago/releases/download/v3.5.0-beta.0/mediago-community-portable-win32-x64-3.5.0-beta.0.exe)
|
||||
- [【mediago】 macos arm64(apple 芯片) v3.5.0-beta.0](https://github.com/caorushizi/mediago/releases/download/v3.5.0-beta.0/mediago-community-setup-darwin-arm64-3.5.0-beta.0.dmg)
|
||||
- [【mediago】 macos x64(intel 芯片) v3.5.0-beta.0](https://github.com/caorushizi/mediago/releases/download/v3.5.0-beta.0/mediago-community-setup-darwin-x64-3.5.0-beta.0.dmg)
|
||||
- [【mediago】 linux v3.5.0-beta.0](https://github.com/caorushizi/mediago/releases/download/v3.5.0-beta.0/mediago-community-setup-linux-amd64-3.5.0-beta.0.deb)
|
||||
- 【mediago】 docker v3.0 `docker run -d --name mediago -p 8899:8899 -v /path/to/mediago:/app/mediago ghcr.io/caorushizi/mediago:3.5.0-beta.0`
|
||||
- [【mediago】 windows(安装版) v3.5.0](https://github.com/caorushizi/mediago/releases/download/v3.5.0/mediago-community-setup-win32-x64-3.5.0.exe)
|
||||
- [【mediago】 windows(便携版) v3.5.0](https://github.com/caorushizi/mediago/releases/download/v3.5.0/mediago-community-portable-win32-x64-3.5.0.exe)
|
||||
- [【mediago】 macos arm64(apple 芯片) v3.5.0](https://github.com/caorushizi/mediago/releases/download/v3.5.0/mediago-community-setup-darwin-arm64-3.5.0.dmg)
|
||||
- [【mediago】 macos x64(intel 芯片) v3.5.0](https://github.com/caorushizi/mediago/releases/download/v3.5.0/mediago-community-setup-darwin-x64-3.5.0.dmg)
|
||||
- [【mediago】 linux v3.5.0](https://github.com/caorushizi/mediago/releases/download/v3.5.0/mediago-community-setup-linux-amd64-3.5.0.deb)
|
||||
- [**Docker Hub**](https://hub.docker.com/r/caorushizi/mediago):`docker run -d --name mediago -p 8899:8899 -v /path/to/mediago:/app/mediago caorushizi/mediago:3.5.0`
|
||||
- **GHCR**:`docker run -d --name mediago -p 8899:8899 -v /path/to/mediago:/app/mediago ghcr.io/caorushizi/mediago:3.5.0`
|
||||
|
||||
历史版本请查看 [GitHub Releases](https://github.com/caorushizi/mediago/releases)。
|
||||
|
||||
## 操作说明
|
||||
|
||||
|
||||
@@ -5,6 +5,28 @@ outline: deep
|
||||
|
||||
# 更新ログ
|
||||
|
||||
## v3.5.0 (2026.4.22 リリース)
|
||||
|
||||
### ソフトウェアダウンロード
|
||||
|
||||
- [【mediago】 Windows(インストーラー版) v3.5.0](https://github.com/caorushizi/mediago/releases/download/v3.5.0/mediago-community-setup-win32-x64-3.5.0.exe)
|
||||
- [【mediago】 Windows(ポータブル版) v3.5.0](https://github.com/caorushizi/mediago/releases/download/v3.5.0/mediago-community-portable-win32-x64-3.5.0.exe)
|
||||
- [【mediago】 macOS arm64(Apple Silicon) v3.5.0](https://github.com/caorushizi/mediago/releases/download/v3.5.0/mediago-community-setup-darwin-arm64-3.5.0.dmg)
|
||||
- [【mediago】 macOS x64(Intel) v3.5.0](https://github.com/caorushizi/mediago/releases/download/v3.5.0/mediago-community-setup-darwin-x64-3.5.0.dmg)
|
||||
- [【mediago】 Linux v3.5.0](https://github.com/caorushizi/mediago/releases/download/v3.5.0/mediago-community-setup-linux-amd64-3.5.0.deb)
|
||||
- [**Docker Hub**](https://hub.docker.com/r/caorushizi/mediago):`docker run -d --name mediago -p 8899:8899 -v /path/to/mediago:/app/mediago caorushizi/mediago:3.5.0`
|
||||
- **GHCR**:`docker run -d --name mediago -p 8899:8899 -v /path/to/mediago:/app/mediago ghcr.io/caorushizi/mediago:3.5.0`
|
||||
|
||||
### 主な新機能
|
||||
|
||||
- **🌐 ブラウザ拡張機能(Chrome / Edge)** — 任意のサイトで動画をワンクリックスニッフィング、MediaGo へ送信
|
||||
- **🎬 YouTube と 1000+ サイト** — yt-dlp による対応
|
||||
- **🦞 OpenClaw Skill** — AI コーディングアシスタント経由で自然言語ダウンロード
|
||||
- **🔌 HTTP API** — スクリプト・自動化・サードパーティツールとの統合
|
||||
- **🎞️ アプリ内フォーマット変換** — ダウンロード完了後に出力形式と画質を選択
|
||||
- **🐳 Docker デプロイの簡素化** — GitHub Container Registry のマルチアーキテクチャイメージ、単一ディレクトリのマウント
|
||||
- **⚡ 起動の高速化** — バックエンドを Go で書き直し、メモリ使用量の削減、内蔵動画プレーヤー
|
||||
|
||||
## v3.0.0 (2024.10.7 リリース)
|
||||
|
||||
### ソフトウェアダウンロード
|
||||
|
||||
+18
-25
@@ -15,41 +15,34 @@ MediaGo QQフィードバックグループ 1: 574209001
|
||||
:::
|
||||
|
||||
::: info
|
||||
v3.0 は最新バージョンです。皆さんの意見はできるだけ3.0バージョンでお寄せください。私たちはできるだけ早く修正します。
|
||||
v3.5 が最新バージョンです。ご意見はできるだけこのバージョンでお寄せください。できるだけ早く対応します。
|
||||
:::
|
||||
|
||||
## ダウンロードとインストール
|
||||
|
||||
### v3.0.0 (2024年10月7日リリース)
|
||||
### v3.5.0 (2026年4月22日リリース)
|
||||
|
||||
#### ソフトウェアのダウンロード
|
||||
|
||||
- [【mediago】 windows(インストール版) v3.0.0](https://github.com/caorushizi/mediago/releases/download/v3.0.0/mediago-setup-win32-x64-3.0.0.exe)
|
||||
- [【mediago】 windows(ポータブル版) v3.0.0](https://github.com/caorushizi/mediago/releases/download/v3.0.0/mediago-portable-win32-x64-3.0.0.exe)
|
||||
- [【mediago】 macos arm64(Appleチップ) v3.0.0](https://github.com/caorushizi/mediago/releases/download/v3.0.0/mediago-setup-darwin-arm64-3.0.0.dmg)
|
||||
- [【mediago】 macos x64(Intelチップ) v3.0.0](https://github.com/caorushizi/mediago/releases/download/v3.0.0/mediago-setup-darwin-x64-3.0.0.dmg)
|
||||
- [【mediago】 linux v3.0.0](https://github.com/caorushizi/mediago/releases/download/v3.0.0/mediago-setup-linux-amd64-3.0.0.deb)
|
||||
- 【mediago】 docker v3.0 `docker run -d --name mediago -p 8899:8899 -v /path/to/mediago:/app/mediago ghcr.io/caorushizi/mediago:latest`
|
||||
- [【mediago】 Windows(インストーラー版) v3.5.0](https://github.com/caorushizi/mediago/releases/download/v3.5.0/mediago-community-setup-win32-x64-3.5.0.exe)
|
||||
- [【mediago】 Windows(ポータブル版) v3.5.0](https://github.com/caorushizi/mediago/releases/download/v3.5.0/mediago-community-portable-win32-x64-3.5.0.exe)
|
||||
- [【mediago】 macOS arm64(Apple Silicon) v3.5.0](https://github.com/caorushizi/mediago/releases/download/v3.5.0/mediago-community-setup-darwin-arm64-3.5.0.dmg)
|
||||
- [【mediago】 macOS x64(Intel) v3.5.0](https://github.com/caorushizi/mediago/releases/download/v3.5.0/mediago-community-setup-darwin-x64-3.5.0.dmg)
|
||||
- [【mediago】 Linux v3.5.0](https://github.com/caorushizi/mediago/releases/download/v3.5.0/mediago-community-setup-linux-amd64-3.5.0.deb)
|
||||
- [**Docker Hub**](https://hub.docker.com/r/caorushizi/mediago):`docker run -d --name mediago -p 8899:8899 -v /path/to/mediago:/app/mediago caorushizi/mediago:3.5.0`
|
||||
- **GHCR**:`docker run -d --name mediago -p 8899:8899 -v /path/to/mediago:/app/mediago ghcr.io/caorushizi/mediago:3.5.0`
|
||||
|
||||
#### 重要な更新内容
|
||||
過去のバージョンは [GitHub Releases ページ](https://github.com/caorushizi/mediago/releases) をご覧ください。
|
||||
|
||||
- DockerでWeb端末の展開をサポート
|
||||
- デスクトップ端末UIを更新
|
||||
#### 主な新機能
|
||||
|
||||
#### 更新ログ
|
||||
|
||||
- DockerでWeb端末の展開をサポート
|
||||
- デスクトップ端末UIを更新
|
||||
- 動画再生機能を追加、デスクトップとモバイル端末両方で再生可能
|
||||
- macで画面が表示されない問題を修正
|
||||
- バッチダウンロードのインタラクションを最適化
|
||||
- Windows用ポータブル版(インストール不要)を追加
|
||||
- ダウンロードリストを最適化し、ページ内の複数の動画の嗅探をサポート
|
||||
- お気に入りリストの手動インポート/エクスポートをサポート
|
||||
- ホームページのダウンロードリストエクスポートをサポート
|
||||
- 【新規ダウンロード】フォームのインタラクションロジックを最適化
|
||||
- UrlSchemeを使用してアプリを開き、ダウンロードタスクを追加
|
||||
- バグの修正とユーザーエクスペリエンスの向上
|
||||
- **ブラウザ拡張機能** (Chrome / Edge) — 任意のサイトで動画をワンクリックスニッフィング
|
||||
- **YouTube と 1000+ サイト** — yt-dlp による対応
|
||||
- **OpenClaw Skill** — AI コーディングアシスタント経由でのダウンロード
|
||||
- **HTTP API** — スクリプト・自動化・サードパーティツールとの統合
|
||||
- **アプリ内フォーマット変換** — ダウンロード完了後に出力形式と画質を選択
|
||||
- **Docker デプロイの簡素化** — GHCR のマルチアーキテクチャイメージ、単一ディレクトリのマウント
|
||||
- **起動の高速化** — バックエンドを Go で書き直し、メモリ使用量の削減、内蔵動画プレーヤー
|
||||
|
||||
## 操作方法
|
||||
|
||||
|
||||
@@ -24,6 +24,7 @@
|
||||
"check": "pnpm lint && pnpm format:check && turbo type:check",
|
||||
"pack:electron": "pnpm core:build && pnpm build:electron && pnpm -F @mediago/electron run pack",
|
||||
"release:electron": "pnpm core:build && pnpm build:electron && pnpm -F @mediago/electron run release",
|
||||
"build:docker": "docker build -t mediago:local .",
|
||||
"docs:dev": "pnpm -F @mediago/docs run docs:dev",
|
||||
"docs:build": "pnpm -F @mediago/docs run docs:build",
|
||||
"type:check": "turbo type:check",
|
||||
|
||||
@@ -0,0 +1,20 @@
|
||||
#!/bin/sh
|
||||
# MediaGo Docker entrypoint.
|
||||
#
|
||||
# `exec` replaces the shell with mediago-core so signals (SIGTERM on
|
||||
# `docker stop`) reach the Go process directly — no shell wrapper in the
|
||||
# middle that would swallow them. `"$@"` forwards any extra args passed
|
||||
# via `docker run ... mediago-core --foo=bar`, letting callers override
|
||||
# individual flags without replacing the whole command.
|
||||
set -e
|
||||
|
||||
exec mediago-core \
|
||||
--port=8899 \
|
||||
--static-dir=/app/static \
|
||||
--enable-auth \
|
||||
--db-path=/app/mediago/data/mediago.db \
|
||||
--config-dir=/app/mediago/data \
|
||||
--log-dir=/app/mediago/logs \
|
||||
--local-dir=/app/mediago/downloads \
|
||||
--deps-dir=/app/deps \
|
||||
"$@"
|
||||
Reference in New Issue
Block a user