|
| 1 | +<div align="center"> |
| 2 | + <a href="https://github.com/lay295/TwitchDownloader"> |
| 3 | + <img src="TwitchDownloaderWPF/Images/Logo.png" alt="Logo" width="80" height="80"> |
| 4 | + </a> |
| 5 | + <h3 align="center">Twitch Downloader</h3> |
| 6 | + <div align="center"> |
| 7 | + Twitch 點播 / 剪輯 / 聊天下載及聊天渲染 |
| 8 | + <br /> |
| 9 | + <br /> |
| 10 | + <a href="https://github.com/lay295/TwitchDownloader/issues"> |
| 11 | + 反饋漏洞 |
| 12 | + </a> |
| 13 | + </div> |
| 14 | +</div> |
| 15 | + |
| 16 | +## 聊天渲染示例 |
| 17 | + |
| 18 | +<https://user-images.githubusercontent.com/1060681/197653099-c3fd12c2-f03a-4580-84e4-63ce3f36be8d.mp4> |
| 19 | + |
| 20 | +## 它能做什麼? |
| 21 | + |
| 22 | +- 下載 Twitch 點播 |
| 23 | +- 下載 Twitch 剪輯 |
| 24 | +- 以 [包含所有原始資訊的 JSON](https://github.com/lay295/TwitchDownloader/files/13495494/ExampleMoonMoonJsonFile.json)、瀏覽器 HTML 檔案或 [純文字檔案](https://github.com/lay295/TwitchDownloader/files/13495523/ExampleMoonMoonTextFile.txt) 的形式下載點播和剪輯的聊天內容 |
| 25 | +- 更新之前生成的 JSON 聊天檔案的內容,並提供另一種格式的儲存選項 |
| 26 | +- 使用之前生成的 JSON 聊天檔案,用 Twitter Twemoji 或 Google Noto Color 表情符號以及 BTTV、FFZ、7TV 靜態和動畫表情來呈現聊天內容 |
| 27 | + |
| 28 | +# GUI |
| 29 | + |
| 30 | +## Windows 呈現基礎 (WPF) |
| 31 | + |
| 32 | + |
| 33 | + |
| 34 | +### [點選此處檢視完整的 WPF 文件(英語)](TwitchDownloaderWPF/README.md) |
| 35 | + |
| 36 | +### 功能介紹 |
| 37 | + |
| 38 | +Windows WPF GUI 實現了程式的所有主要功能以及一些額外的提升效率的功能: |
| 39 | + |
| 40 | +- 排隊同時執行多個下載 / 渲染任務 |
| 41 | +- 從點播 / 剪輯連結列表中建立下載任務列表 |
| 42 | +- 搜尋並下載來自任何流媒體的多個點播 / 剪輯,無需離開應用程式 |
| 43 | + |
| 44 | +### 多語言支援 |
| 45 | + |
| 46 | +透過社群翻譯,Windows WPF GUI 有多種語言版本。請參閱 [WPF 自述檔案(英語)](TwitchDownloaderWPF/README.md)的 [本地化部分](TwitchDownloaderWPF/README.md#localization)。 |
| 47 | + |
| 48 | +### 主題 |
| 49 | + |
| 50 | +Windows WPF GUI 內建了淺色和深色主題,以及根據當前 Windows 主題進行實時更新的選項。它還支援使用者建立主題!更多詳情,請參閱 [WPF 自述檔案(英語)](TwitchDownloaderWPF/README.md)的 [主題部分](TwitchDownloaderWPF/README.md#theming)。 |
| 51 | + |
| 52 | +### 影片演示 |
| 53 | + |
| 54 | +<https://www.youtube.com/watch?v=0W3MhfhnYjk> |
| 55 | +(舊版,概念相同) |
| 56 | + |
| 57 | +## Linux? |
| 58 | + |
| 59 | +請檢視 [Github](https://github.com/mohad12211/twitch-downloader-gui) 上的 twitch-downloader-gui 或 [AUR](https://aur.archlinux.org/packages/twitch-downloader-gui) 上的 CLI 的 Linux GUI 封裝程式。 |
| 60 | + |
| 61 | +## MacOS? |
| 62 | + |
| 63 | +目前還沒有適用於 MacOS 的 GUI 版本 :( |
| 64 | + |
| 65 | +# CLI |
| 66 | + |
| 67 | +### [點選此處檢視完整的 CLI 文件](TwitchDownloaderCLI/README.md) |
| 68 | + |
| 69 | +CLI 是跨平臺的,可以實現程式的主要功能。它可在 Windows、Linux 和 MacOS<sup>*</sup> 上執行。 |
| 70 | + |
| 71 | +<sup>*僅對 Intel Mac 進行了測試</sup> |
| 72 | + |
| 73 | +透過 CLI,可以使用外部指令碼自動處理影片。例如,你可以在 Windows 上將以下程式碼複製貼上到 `.bat` 檔案中,下載點播及其聊天內容,然後渲染聊天內容,所有這些都只需一次輸入。 |
| 74 | + |
| 75 | +```bat |
| 76 | +@echo off |
| 77 | +set /p vodid="輸入點播 ID:" |
| 78 | +TwitchDownloaderCLI.exe videodownload --id %vodid% --ffmpeg-path "ffmpeg.exe" -o %vodid%.mp4 |
| 79 | +TwitchDownloaderCLI.exe chatdownload --id %vodid% -o %vodid%_chat.json -E |
| 80 | +TwitchDownloaderCLI.exe chatrender -i %vodid%_chat.json -h 1080 -w 422 --framerate 30 --update-rate 0 --font-size 18 -o %vodid%_chat.mp4 |
| 81 | +``` |
| 82 | + |
| 83 | +## Windows - 開始 |
| 84 | + |
| 85 | +1. 前往 [Release 頁面](https://github.com/lay295/TwitchDownloader/releases/) 並下載最新的 Windows 版本或 [從原始碼構建](#building-from-source)。 |
| 86 | +2. 提取 `TwitchDownloaderCLI.exe`。 |
| 87 | +3. 開啟可執行檔案放置的位置: |
| 88 | + |
| 89 | +```命令 |
| 90 | +cd C:\folder\containing\TwitchDownloaderCLI |
| 91 | +``` |
| 92 | + |
| 93 | +4. 如果沒有 FFmpeg,可以透過 [Chocolatey 程式包管理器](https://community.chocolatey.org/) 安裝,也可以從 [ffmpeg.org](https://ffmpeg.org/download.html) 或使用 TwitchDownloaderCLI 以獨立檔案的形式獲取: |
| 94 | + |
| 95 | +```命令 |
| 96 | +TwitchDownloaderCLI.exe ffmpeg --download |
| 97 | +``` |
| 98 | + |
| 99 | +5. 你現在可以開始使用 TwitchDownloaderCLI 了,例如: |
| 100 | + |
| 101 | +```命令 |
| 102 | +TwitchDownloaderCLI.exe videodownload --id <點播 ID> -o out.mp4 |
| 103 | +``` |
| 104 | + |
| 105 | +更多命令示例請參閱 [CLI 自述檔案](TwitchDownloaderCLI/README.md#example-commands)。 |
| 106 | + |
| 107 | +## Linux – 開始 |
| 108 | + |
| 109 | +1. 有些發行版,如 Linux Alpine,缺少某些語言(阿拉伯語、波斯語、泰語等)的字型。如果是這種情況,請安裝額外的字體系列,如 [Noto Sans](https://fonts.google.com/noto/specimen/Noto+Sans),或者檢視發行版的字型 Wiki 頁面,因為它可能有針對這種特定情況的安裝命令,如 [Linux Alpine](https://wiki.alpinelinux.org/wiki/Fonts) 字型頁面。 |
| 110 | +2. 確保 `fontconfig` 和 `libfontconfig1` 都已安裝。在 Ubuntu 上執行 `apt-get install fontconfig libfontconfig1`。 |
| 111 | +3. 前往 [Release 頁面](https://github.com/lay295/TwitchDownloader/releases/) 並下載最新的 Linux 版本抓取適用於 Arch Linux 的 [AUR 軟體包](https://aur.archlinux.org/packages/twitch-downloader-bin/),或 [從原始碼構建](#building-from-source)。 |
| 112 | +4. 提取 `TwitchDownloaderCLI`。 |
| 113 | +5. 開啟二進位制可執行檔案放置的目錄: |
| 114 | + |
| 115 | +```命令 |
| 116 | +cd directory/containing/TwitchDownloaderCLI |
| 117 | +``` |
| 118 | + |
| 119 | +6. 授予二進位制可執行檔案權限: |
| 120 | + |
| 121 | +```命令 |
| 122 | +sudo chmod +x TwitchDownloaderCLI |
| 123 | +``` |
| 124 | + |
| 125 | +7. a) 如果沒有 FFmpeg,可以透過 [Chocolatey 程式包管理器](https://community.chocolatey.org/) 安裝,也可以從 [ffmpeg.org](https://ffmpeg.org/download.html) 或使用 TwitchDownloaderCLI 以獨立檔案的形式獲取: |
| 126 | + |
| 127 | +```命令 |
| 128 | +./TwitchDownloaderCLI ffmpeg --download |
| 129 | +``` |
| 130 | + |
| 131 | +7. b) 如果下載的是獨立檔案,還必須授予其可執行權限: |
| 132 | + |
| 133 | +```命令 |
| 134 | +sudo chmod +x ffmpeg |
| 135 | +``` |
| 136 | + |
| 137 | +8. 你現在可以開始使用 TwitchDownloaderCLI 了,例如: |
| 138 | + |
| 139 | +```命令 |
| 140 | +./TwitchDownloaderCLI videodownload --id <vod-id-here> -o out.mp4 |
| 141 | +``` |
| 142 | + |
| 143 | +更多命令示例請參閱 [CLI 自述檔案](TwitchDownloaderCLI/README.md#example-commands)。 |
| 144 | + |
| 145 | +## MacOS – 開始 |
| 146 | + |
| 147 | +1. 如果你的裝置使用的是 Apple Silicon M 系列處理器,請確保下載了 arm64 二進位制檔案,但如果你想在 Apple Silicon 上使用 x64 二進位制檔案,則必須在 Rosetta 2 下透過終端會話執行: |
| 148 | + |
| 149 | +```命令 |
| 150 | +arch -x86_64 zsh |
| 151 | +``` |
| 152 | + |
| 153 | +2. 前往 [Release 頁面](https://github.com/lay295/TwitchDownloader/releases/) 並下載最新的 MacOS 版本或 [從原始碼構建](#building-from-source)。 |
| 154 | +3. 提取 `TwitchDownloaderCLI`。 |
| 155 | +4. 開啟二進位制可執行檔案放置的目錄: |
| 156 | + |
| 157 | +```命令 |
| 158 | +cd directory/containing/TwitchDownloaderCLI |
| 159 | +``` |
| 160 | + |
| 161 | +5. 授予二進位制可執行檔案在終端中的權限: |
| 162 | + |
| 163 | +```命令 |
| 164 | +chmod +x TwitchDownloaderCLI |
| 165 | +``` |
| 166 | + |
| 167 | +6. a) 如果沒有 FFmpeg,可以透過 [Homebrew 程式包管理器](https://brew.sh/) 在整個系統中安裝,也可以從 [ffmpeg.org](https://ffmpeg.org/download.html) 或使用 TwitchDownloaderCLI 以獨立檔案的形式獲取: |
| 168 | + |
| 169 | +```命令 |
| 170 | +./TwitchDownloaderCLI ffmpeg --download |
| 171 | +``` |
| 172 | + |
| 173 | +6. b) 如果下載的是獨立檔案,還必須授予其可執行權限: |
| 174 | + |
| 175 | +```命令 |
| 176 | +chmod +x ffmpeg |
| 177 | +``` |
| 178 | + |
| 179 | +7. 你現在可以開始使用 TwitchDownloaderCLI 了,例如: |
| 180 | + |
| 181 | +```命令 |
| 182 | +./TwitchDownloaderCLI videodownload --id <vod-id-here> -o out.mp4 |
| 183 | +``` |
| 184 | + |
| 185 | +更多命令示例請參閱 [CLI 自述檔案](TwitchDownloaderCLI/README.md#example-commands)。 |
| 186 | + |
| 187 | +# 從原始碼構建 |
| 188 | + |
| 189 | +## 要求 |
| 190 | + |
| 191 | +- [.NET 6.0.x SDK](https://dotnet.microsoft.com/en-us/download/dotnet/6.0) |
| 192 | +- 約 1GB 磁碟空間 |
| 193 | + |
| 194 | +## 構建說明 |
| 195 | + |
| 196 | +1. 克隆此倉庫: |
| 197 | + |
| 198 | +```命令 |
| 199 | +git clone https://github.com/lay295/TwitchDownloader.git |
| 200 | +``` |
| 201 | + |
| 202 | +2. 定位至 solution 資料夾: |
| 203 | + |
| 204 | +```命令 |
| 205 | +cd TwitchDownloader |
| 206 | +``` |
| 207 | + |
| 208 | +3. 還原 solution: |
| 209 | + |
| 210 | +```命令 |
| 211 | +dotnet restore |
| 212 | +``` |
| 213 | + |
| 214 | +- 非 Windows 裝置可能需要明確指定要還原的專案,即 `dotnet restore TwitchDownloaderCLI` |
| 215 | + |
| 216 | +4. a) 構建 GUI: |
| 217 | + |
| 218 | +```命令 |
| 219 | +dotnet publish TwitchDownloaderWPF -p:PublishProfile=Windows |
| 220 | +``` |
| 221 | + |
| 222 | +4. b) 構建 CLI: |
| 223 | + |
| 224 | +```命令 |
| 225 | +dotnet publish TwitchDownloaderCLI -p:PublishProfile=<Profile> |
| 226 | +``` |
| 227 | + |
| 228 | +- 可接受的配置檔案:`Windows`、`Linux`、`LinuxAlpine`、`LinuxArm`、`LinuxArm64`、`MacOS`、`MacOSArm64` |
| 229 | + |
| 230 | +5. a) 定位至 GUI 構建資料夾: |
| 231 | + |
| 232 | +```命令 |
| 233 | +cd TwitchDownloaderWPF/bin/Release/net6.0-windows/publish/win-x64 |
| 234 | +``` |
| 235 | + |
| 236 | +5. b) 定位至 CLI 構建資料夾: |
| 237 | + |
| 238 | +```命令 |
| 239 | +cd TwitchDownloaderCLI/bin/Release/net6.0/publish |
| 240 | +``` |
| 241 | + |
| 242 | +# 第三方貢獻 |
| 243 | + |
| 244 | +聊天渲染使用 [SkiaSharp](https://github.com/mono/SkiaSharp) 和 [HarfBuzzSharp](https://github.com/mono/SkiaSharp) © Microsoft 公司。 |
| 245 | + |
| 246 | +對聊天渲染進行編碼,並最終完成影片下載使用 [FFmpeg](https://ffmpeg.org/) © FFmpeg 開發者。 |
| 247 | + |
| 248 | +聊天渲染可能會使用 [Noto Color 表情符號](https://github.com/googlefonts/noto-emoji) © Google 及其貢獻者。 |
| 249 | + |
| 250 | +聊天渲染可能會使用 [Twemoji](https://github.com/twitter/twemoji) © Twitter 及其貢獻者。 |
| 251 | + |
| 252 | +內建的 FFmpeg 二進位制檔案取自 [gyan.dev](https://www.gyan.dev/ffmpeg/) © Gyan Doshi。 |
| 253 | + |
| 254 | +FFmpeg 二進位制檔案和執行時的下載使用 [Xabe.FFmpeg.Downloader](https://github.com/tomaszzmuda/Xabe.FFmpeg) © Xabe。 |
| 255 | + |
| 256 | +聊天 Html 匯出使用的 _Inter_ 字型由 [Google Fonts API](https://fonts.google.com/) 託管 © Google。 |
| 257 | + |
| 258 | +有關使用的外部庫的完整列表,請參閱 [THIRD-PARTY-LICENSES.txt(英文)](./TwitchDownloaderCore/Resources/THIRD-PARTY-LICENSES.txt)。 |
| 259 | + |
| 260 | +# 開源許可協議 |
| 261 | + |
| 262 | +[MIT](./LICENSE.txt) |
| 263 | + |
| 264 | +TwitchDownloader 與 Twitch Interactive, Inc. 及其附屬公司沒有任何關聯。 |
0 commit comments