Caddy官方升级到了2.0版,新版配置文件,不与旧版兼容。
毕竟迟早都要升级,于是参考官方文档,研究一下新版caddy设置。
虽然Caddy2官方推荐使用JSON配置文件,但这里还是在用Caddyfile。

基本用法

执行文件,直接从官方下载:
https://github.com/caddyserver/caddy/releases
配置文件名,默认为当前文件夹下面的“Caddyfile”。
启动caddy:

#前台启动
caddy run --config ./Caddyfile
#后台运行
caddy start --config ./Caddyfile
#格式化配置文件
caddy fmt -overwrite ./Caddyfile

##准备SSL证书
##生成rsa私钥,des3算法,1024位强度,ssl.key是秘钥文件名。
openssl genrsa -des3 -out ssl.key 1024
#去除密码
openssl rsa -in ssl.key -out ssl.key
#生成证书
openssl req -new -key ssl.key -out ssl.csr

配置文件示例:

http://localhost:5001 {
        encode gzip
        root /you/path/
}
localhost:5002 {
        encode gzip
        file_server browse {
                root /you/file/path
        }
}

caddy默认为https,需要http服务的话,需要明确地指定http。

编译caddy,添加 webdav 插件

使用官方工具 xcaddy,编译附带webdav插件。
有两个前提:
1. 本机已配置好golang环境。
2. 本机启用了go moudles。(GO111MODULE=”auto” 或 GO111MODULE=”on”)

#克隆代码
git clone https://github.com/caddyserver/xcaddy
#进入文件夹
cd xcaddy
#安装xcaddy工具
go get -u github.com/caddyserver/xcaddy/cmd/xcaddy
#编译caddy,指定版本为v2.0.0
xcaddy build v2.0.0  --with  github.com/mholt/caddy-webdav
#查看编译了什么模块,应该有http.handlers.webdav
./caddy list-modules
#把新版caddy,复制到系统路径
cp ./caddy /usr/local/bin/
#如果是windows的话
./caddy.exe list-modules

webdav配置示例

http://www.yumenaka.net {
    webdav {
        root /file/path
    }
    tls /Users/bai/Dropbox/Linux/ssl.crt /Users/bai/Dropbox/Linux/ssl.key
    # 密码不能为明文,可以使用自带的工具加密:
    # caddy hash-password  --plaintext sdderght
    basicauth {
        bai JDJhJDEwJG9FRzl5eDM4ZHBmNDVFOUUwQkZTcHU1QzlmVHN6OGFrYURXdi9PQ1FGb2VzTHZmWEN1MjRH
    }
}

参考文档

簡単にSSL証明書を取得可能&シンプルな設定ファイルでHTTP/3も利用できるGo製ウェブサーバー「Caddy」
服务器配置https协议,三种免费的方法
用RaspberryPi搭建Aria2+Caddy2下载站
Caddy 2 使用Caddyfile部署博客网站
用Caddy2反向代理地下城世界
reverse_proxy (Caddyfile directive) — Caddy Documentation

1.安装Android Studio
https://developer.android.com/studio
但这个自带Android SDK,官方各种flutter插件功能也很强大。
也可以用VSCode,比较轻量。

2、设置系统 环境变量
ANDROID_HOME D:\Android\sdk
PUB_HOSTED_URL https://pub.flutter-io.cn
FLUTTER_STORAGE_BASE_URL https://storage.flutter-io.cn

3、安装ADB驱动
http://adbdriver.com/downloads/

4、path
;%ANDROID_HOME%\platform-tools;%ANDROID_HOME%\tools;D:\Android\flutter

安装 git 、golang、msys2、qt

去各自官网下载即可

git

官网:https://git-scm.com/
装好后,在PATH里添加:
C:\Program Files\Git\cmd

golang

官网下载页面:https://golang.org/dl/
下载压缩包(go1.12.4.windows-amd64.zip),我选择解压到“D:\soft\go”。
因为不是msi版,所以需要自己添加golang系统变量:

# GOROOT
D:\soft\Go\
# GoPath
D:\soft\gopath

加入PATH
D:\soft\gopath\bin;D:\msys64\mingw64\bin

msys2

去官网(https://www.msys2.org/)下载安装包,一路下一步即可。
我把安装路径改成了“ D:\msys64 ”。

利用msys2安装QT包

用到什么环境变量就添加环境变量
pacman -Syyu
pacman -S gcc
pacman -S mingw-w64-x86_64-qt-creator mingw-w64-x86_64-qt5
pacman -S mingw-w64-x86_64-qt-creator mingw-w64-x86_64-qt5-static
pacman -Scc

设置环境变量

QT相关

# QT_DIR
D:\msys64\mingw64\qt5-static
#QT_MSYS2_DIR
D:\msys64
# QT_MSYS2_ARCH
amd64
# QT_WEBKIT
true
#QT_MSYS2_STATIC
true

安装therecipe/qt

安装环境

可能需要翻墙,然后需要较长时间(1~2小时)

go get -v github.com/therecipe/qt/cmd/...
$GOPATH/bin/qtsetup

测试demo

go get -d -v github.com/therecipe/examples/...
cd $GOPATH/src/github.com/therecipe/examples
qtdeploy test desktop ./basic/widgets

参考文档:
windows安装therecipe/qt
【golang-GUI开发】Qt5的安装
therecipe/qt: Qt binding for Go (Golang)
therecipe/qt Installation on Windows

安装软件

# Arch系
sudo pacman -S samba rsync nfs-utils aria2  transmission-cli

aurman -S lsyncd
# debian系
sudo apt install samba rsync hdparm aria2  transmission-cli

设定文件系统挂载

# 查看分区状况
sudo fdisk -a
# 编辑分区挂载分区文件
sudo nano /etc/fstab

在里面加入如下内容,详细设置参考ArchLinux Wiki

# nofail:外部设备在插入时挂载,在未插入时忽略。pass: 0 表示设备不会被 fsck 所检查
# <file system>        <dir>         <type>    <options>                    <dump> <pass>
/dev/sda1        /media/pi/ssd         auto     defaults,noatime,nofail        0      0
# 使用以下命令在所有父目录上添加"x"权限:
sudo chmod o+x /media /media/pi /media/pi/ssd
# 让挂载点生效
sudo mount -a 
# 测试读取速度
sudo hdparm -t --direct /dev/sda

设置Aria2

sudo mkdir /etc/aria2
sudo touch /etc/aria2/aria2.session
sudo chmod 777 /etc/aria2/aria2.session
sudo nano /etc/aria2/aria2.conf
# 后台运行,用SystemD时不需要这一句
# daemon=true
# 启用RPC, 默认:false
enable-rpc=true
# 允许所有来源, 默认:false
rpc-allow-origin-all=true
# 允许非外部访问, 默认:false
rpc-listen-all=true
#RPC端口, 仅当默认端口被占用时修改
#rpc-listen-port=6800
#最大同时下载数(任务数), 路由建议值: 3
max-concurrent-downloads=9
#断点续传
continue=true
#同服务器连接数
max-connection-per-server=5
#最小文件分片大小, 下载线程数上限取决于能分出多少片, 对于小文件重要
min-split-size=10M
#单文件最大线程数, 路由建议值: 5
split=10
#下载速度限制
max-overall-download-limit=0
#单文件速度限制
max-download-limit=0
#上传速度限制
max-overall-upload-limit=0
#单文件速度限制
max-upload-limit=0
#断开速度过慢的连接
#lowest-speed-limit=0
#验证用,需要1.16.1之后的release版本
#referer=*
#文件保存路径, 默认为当前启动位置  请自行填写
dir= /media/pi/ssd/Download/
#文件缓存, 使用内置的文件缓存, 如果你不相信Linux内核文件缓存和磁盘内置缓存时使用, 需要1.16及以上版本
#disk-cache=0
#另一种Linux文件缓存方式, 使用前确保您使用的内核支持此选项, 需要1.15及以上版本(?)
#enable-mmap=true
#文件预分配, 能有效降低文件碎片, 提高磁盘性能. 缺点是预分配时间较长
#所需时间 none < falloc ? trunc << prealloc, falloc和trunc需要文件系统和内核支持
file-allocation=falloc
# 从会话文件中读取下载任务
input-file=/etc/aria2/aria2.session
# 在Aria2退出时保存`错误/未完成`的下载任务到会话文件
save-session=/etc/aria2/aria2.session
# 定时保存会话, 0为退出时才保存, 需1.16.1以上版本, 默认:0
save-session-interval=60
# 当种子的分享率达到这个数时, 自动停止做种, 0为一直做种, 默认:1.0
seed-ratio=2.0
# 本地节点查找, PT需要禁用, 默认:false
bt-enable-lpd=true
bt-tracker=udp://tracker.coppersurfer.tk:6969/announce,udp://tracker.internetwarriors.net:1337/announce,udp://tracker.opentrackr.org:1337/announce,udp://exodus.desync.com:6969/announceBT,http://nyaa.tracker.wf:7777/announce,udp://open.stealth.si:80/announce,udp://tracker.coppersurfer.tk:6969/announce,udp://exodus.desync.com:6969/announce
sudo vim /lib/systemd/system/aria.service
[Unit]
Description=Aria2 Service
After=network.target

[Service]
User=root
ExecStart=/usr/bin/aria2c --conf-path=/etc/aria2/aria2.conf

[Install]
WantedBy=multi-user.target
sudo systemctl daemon-reload
sudo systemctl enable aria  && sudo systemctl restart aria
# 查看 aria 服务状态
sudo systemctl status aria

transmission

用来下载ed2k

# 查看配置
transmission-remote -si
sudo nano settings.json
//TODO transmission配置

caddy设置

CADDY_TELEMETRY=on curl https://getcaddy.com | bash -s personal http.forwardproxy,http.git,http.webdav,tls.dns.cloudflare
sudo vim /etc/CaddyFile.conf
:5001 {
    root /home/pi/soft/AriaNg/  #这里替换为你的网站文件目录
}
:5002 {
    root /media/pi/ssd/Download/ #这里替换为你的下载文件目录
    browse 
}
sudo vim /lib/systemd/system/caddy.service
[Unit]
Description=Caddy Service
After=network.target

[Service]
User=root
ExecStart=/usr/local/bin/caddy --conf /etc/CaddyFile.conf

[Install]
WantedBy=multi-user.target
sudo systemctl daemon-reload
sudo systemctl enable caddy && sudo systemctl restart caddy
# 查看 aria 服务状态
sudo systemctl status caddy

Amule设置

下载ed2k连接用,编写中。

Samba设置

# 修改 /etc/samba/smb.conf
sudo vim /etc/samba/smb.conf

编辑smb.conf文件,改为以下内容

[global]
        workgroup = WORKGROUP
        # 设置出现在“网上邻居”中的主机名
        netbios name = neo4server
        server string = SambaServer
        security = user
        passdb backend = smbpasswd
        load printers = yes
        cups options = raw
[homes]
        comment = Home Directories
        browseable = no
        writable = yes
[nanopi-ssd]
        comment = ssd 
        path = /media/pi/ssd
        browseable = yes
        guest ok = no
        writable = yes
#  新建/etc/samba/smbpasswd文件
sudo touch /etc/samba/smbpasswd
# 根据之前设置的valid users,设置用户密码
# root 替换为你设置的用户名
sudo smbpasswd -a root
# 输入两次密码后,会提示 Added user gzd. 表示设置成功
#  若用户名非当前登录系统的用户名,可能会提示Failed
# 如果在[globa]中” passdb backend = tdbsam”的话,会需要使用” pdbedit” 来增加用户

sudo systemctl restart smbd  nmbd

通过mount和smbcount挂载远程共享文件夹

modprobe cifs
mkdir $HOME/samba_temp
mount -t cifs -o username=administrator,password=123456 //192.168.0.1/tmp $HOME/samba_temp

Rsync相关配置文件

Rsync

rsync [OPTION]… SRC DEST
目录SRC是否以斜杠结尾,会影响同步的结果:
以斜杠结尾:目录DEST里面有 [目录SRC本身]
不以斜杠结尾:目录DEST里面有 [目录SRC里面的文件]

Master端手动传输

# 手动传输文件(不同机器之间)
rsync -avzP 192.168.200.173::somedata /home/youname/somedata
# 手动传输文件(本地目录),留心源目录的“/”,加不加意思完全不同。目的地目录就随便了,反正意思一样。

rsync -avzP /home/username/somedata1/ /home/youname/somedata2/

# 从另一个笔记本的tocdata,通过SSH隧道拉取到本地(需要输入密码):
rsync -avzP root@192.168.1.20:/home/username/source/ /sharedfolders/localfolder

# -a   表示文件应被存档,这意味着他们的大部分特性被保留 (不包括ACLs, 硬链接或扩展属性,如capabilities)
# -v, --verbose 详细模式输出
# -P 显示进度
# -z, --compress 对备份的文件在传输时进行压缩处理
# -r --recursive 递归传输子文件夹
虽然还可以写自动备份脚本,但用第三方的lsyncd应该更好。

Slave端设置

sudo nano /etc/rsyncd.conf
uid = root
gid = root
pid file = /var/run/rsyncd.pid #pid文件的存放位置 
lock file = /var/run/rsync.lock #锁文件的存放位置 
log file = /var/log/rsyncd.log #日志记录文件的存放 
[node2] #模块名字,自己命名 
path = /data/node2 #指定文件目录所在位置,这是必须指定 
read only = no 
list = no #是否把rsync服务器上提供同步数据的目录显示 
hosts allow = 192.168.1.39 #允许访问的主机 hosts deny = * #拒绝访问的主机

启动服务

rsync --daemon --config=/etc/rsyncd.conf

通过Rsync同步文件

rsync -av 源目录 目标目录

拉取文件:

rsync -avzP 192.168.2.1::datagroup /home/youname/data

NFS共享

配置文件:

sudo nano  /etc/exports
# 加入这行
/root/data  *(rw)
# 重启服务
sudo systemctl  restart nfs-server

有个重大的问题就是中文会乱码。
虽然可以通过设置系统来支持UTF-8,但这样又会带来中文目录软件异常的问题。

参考文献:
树莓派3B+ aria配置
fstab (简体中文)- ArchWiki
配置 samba 服务器
rsync简明教程
rsync 的使用方法
服务器和本地的文件同步
Archlinux维基Samba条目
Lsyncd搭建同步镜像-用Lsyncd实现本地和远程服务器之间实时同步
【 rsync 】コマンド(その1)――ファイルやディレクトリを同期する
lsyncdで双方向同期するなら、delete=’running’ がいい
Config Layer 4: Default Config
Archlinux Wiki NFS条目

安装OnMyZsh

首先你得装zsh。

# Ubuntu:
sudo apt install zsh
# Archlinux:
sudo pacman -S zsh

然后就可以装ohmyzsh这个优化整合包了,官方提供的一键脚本:

sh -c "$(wget https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh -O -)"

设置常用插件

plugins=(
  git
  archlinux
  autojump
  go
  python
  systemd
  torrent
  vi-mode
  extract  #解压缩文件, x filename即可。
  zsh-proxy # git clone https://github.com/sukkaw/zsh-proxy.git ~/.oh-my-zsh/custom/plugins/zsh-proxy
  zsh-autosuggestions  # 类Fish的自动提示插件,需要自行安装。
)

安装插件 zsh-autosuggestions

git clone https://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions

安装设置插件 oh-my-zsh-proxy-plugin

git clone https://github.com/escalate/oh-my-zsh-proxy-plugin.git "$HOME/.oh-my-zsh/custom/plugins/proxy"
mkdir $HOME/.proxy 
echo "http://127.0.0.1:10800" > $HOME/.proxy/http_proxy
echo "http://127.0.0.1:10800" > $HOME/.proxy/https_proxy
echo "http://127.0.0.1:10800" > $HOME/.proxy/ftp_proxy
echo "http://127.0.0.1:10800" > $HOME/.proxy/rsync_proxy
echo "" > $HOME/.proxy/no_proxy

让设置文件支持多个类Unix系统

case `uname` in
  Darwin)
    # commands for OS X go here
  ;;
  Linux)
    # commands for Linux go here
  ;;
  FreeBSD)
    # commands for FreeBSD go here
  ;;
esac

选择国内源

# 生成可用中国镜像站列表:
sudo pacman-mirrors --country China
# 或者
sudo pacman-mirrors --c China

升级系统

sudo pacman -Syyu

清华加速源

## 在 /etc/pacman.conf 文件末尾添加以下两行:
[archlinuxcn]
Server = https://mirrors.tuna.tsinghua.edu.cn/archlinuxcn/$arch
#之后安装 archlinuxcn-keyring 包导入 GPG key。
sudo pacman -Syyu && sudo pacman -S  archlinuxcn-keyring

常用命令行软件

sudo pacman -S htop zsh git vim curl unzip neofetch python lsof psmisc bmon net-tools sudo
## 需要ArchlinuxCN源
sudo pacman -S byobu cockpit aurman cockpit
## Aur软件
aurman -S google-chrome

更改系统编码

具体参考 Archlinux维基

# 查看系统编码
locale 
# 更改系统编码,取消相关行注释
sudo nano /etc/locale.gen
sudo locale-gen
sudo nano /etc/default/locale
# 添加一行
LANG="en_US.UTF-8"
# 使其生效
source /etc/default/locale
#或者
localectl set-locale LANG=en_US.UTF-8

设置terminal代理

export all_proxy=http://127.0.0.1:10800;
export https_proxy=http://127.0.0.1:10800;
export http_proxy=http://127.0.0.1:10800;
# socks5代理:
export https_proxy=socks5://127.0.0.1:10801;
export http_proxy=socks5://127.0.0.1:10801;

浏览器、 软件输入法、字体等

#浏览器、网盘、通讯软件
sudo pacman -S firefox firefox-i18n-zh-cn  telegram-desktop  dropbox chromium
#常用拼音、日语输入法
sudo pacman -S  fcitx fcitx-googlepinyin fcitx-mozc fcitx-cloudpinyin fcitx-configtool fcitx-gtk3 fcitx-gtk2
#输入法需要的环境变量,重新登入后生效
nano  ~/.pam_environment 
## 这里不是 shell,不写 export
GTK_IM_MODULE=fcitx
QT_IM_MODULE=fcitx
XMODIFIERS=@im=fcitx
# 常用字体
sudo pacman -S noto-fonts-emoji  adobe-source-han-sans-otc-fonts  adobe-source-code-pro-fonts noto-fonts-cjk ttf-dejavu

SSH更改默认端口、允许Root登陆

sudo nano /etc/ssh/sshd_config
##修改以下两句
#PermitRootLogin yes
#Port 22345
## 重启SSH服务
sudo systemctl restart sshd
sudo systemctl status sshd

设置时间、时间同步服务

# 设置时区
sudo timedatectl set-timezone  Asia/Shanghai
# 让 Linux 使用本地时间
sudo timedatectl set-local-rtc true
# ubuntu删除可能冲突的ntp:
sudo apt remove ntp
#编辑设置文件:
sudo nano /etc/systemd/timesyncd.conf
#添加时间服务器如下
[Time]
NTP=0.arch.pool.ntp.org 1.arch.pool.ntp.org 2.arch.pool.ntp.org 3.arch.pool.ntp.org 
FallbackNTP=0.pool.ntp.org 1.pool.ntp.org 0.fr.pool.ntp.org time.google.com 
# 设置时间同步服务:
sudo systemctl enable systemd-timesyncd
sudo systemctl restart systemd-timesyncd
#查看时间同步服务状态
sudo systemctl status systemd-timesyncd

修复系统

Manjaro部分指令,名称和Archlinux不一样,但是用法大致相同。

mkmanjaroroot --> mkchroot
manjarobuild --> buildpkg
mkset --> buildset
pacstrap --> basestrap
genfstab --> fstabgen
arch-chroot --> manjaro-chroot

修复系统的命令也跟着替换改变即可。

比如

pacstrap /mnt base base-devel
arch-chroot /mnt

调整为:

pacstrap /mnt base base-devel
arch-chroot /mnt

参考文档:
以官方Wiki的方式安装ArchLinux
记一次修复 Arch Linux 引导

系统环境Windows10 2019 LTS

开启WSL功能

首先,你需要在系统设定当中开启WSL功能。

1、进入系统设置

点击左下角Windows图标,打开开始菜单、点击系统设置按钮。

2、启用开发人员模式

在windows设置菜单里,选择“更新与安全”。

选择开发者选项

启用开发人员模式

3、启用Windows子系统

依次选择 开始菜单、Windows系统、控制面板

在控制面板里面,找到“程序与功能”

启用“适用于Linux的Windows子系统”。

安装微软商店

网上有整合包,参考这篇文章即可:
https://www.coolapp.wang/share/4291.html
如果只是需要Ubuntu,打开应用商店搜索Linux就能找到并安装。

安装Archlinux子系统

再次感谢助人为乐的朋友:
https://github.com/yuk7/ArchWSL/
下载releases的zip包,并解压到一个有写权限的地方,在右键管理员权限运行Arch.exe。

再次打开Arch.exe,初始化pacman,运行这两句:

pacman-key --init
pacman-key --populate

然后系统就转备好了,so easy!

Windows10和Linux子系统共享文件

Arch WSL 的文件系统在 Arch\rootfs 中。
Linux访问Windows 10也非常简单,新版的WSL,Windows盘符会自动挂载文件到/mnt目录下。

参考文章

配置指北:打造 Windows 最强命令行
Linux详细设置:

Linux命令与设置备忘

下载链接:
https://dl.google.com/japanese-ime/2.24.3250.0/googlejapaneseinput32.msi
https://dl.google.com/japanese-ime/2.24.3250.0/googlejapaneseinput64.msi

只要替换链接中的版本号,就可以直接下到对应版本。
历史版本:
https://dl.google.com/japanese-ime/0.9.248.0/googlejapaneseinput.msi
https://dl.google.com/japanese-ime/0.10.288.0/googlejapaneseinput.msi
https://dl.google.com/japanese-ime/0.10.289.100/googlejapaneseinput.msi
https://dl.google.com/japanese-ime/0.13.521.0/googlejapaneseinputinterim32.msi
https://dl.google.com/japanese-ime/0.13.521.0/googlejapaneseinputinterim64.msi
https://dl.google.com/japanese-ime/1.0.556.0/googlejapaneseinput32.msi
https://dl.google.com/japanese-ime/1.0.556.0/googlejapaneseinput64.msi
https://dl.google.com/japanese-ime/1.1.770.0/googlejapaneseinput32.msi
https://dl.google.com/japanese-ime/1.1.770.0/googlejapaneseinput64.msi
https://dl.google.com/japanese-ime/1.2.825.0/googlejapaneseinput32.msi
https://dl.google.com/japanese-ime/1.2.825.0/googlejapaneseinput64.msi
https://dl.google.com/japanese-ime/1.3.974.0/googlejapaneseinput32.msi
https://dl.google.com/japanese-ime/1.3.974.0/googlejapaneseinput64.msi
https://dl.google.com/japanese-ime/1.5.1109.0/googlejapaneseinput32.msi
https://dl.google.com/japanese-ime/1.5.1109.0/googlejapaneseinput64.msi
https://dl.google.com/japanese-ime/1.6.1221.0/googlejapaneseinput32.msi
https://dl.google.com/japanese-ime/1.6.1221.0/googlejapaneseinput64.msi
https://dl.google.com/japanese-ime/1.7.1277.0/googlejapaneseinput32.msi ←开始支持Windows8的稳定版
https://dl.google.com/japanese-ime/1.7.1277.0/googlejapaneseinput64.msi ←同上
https://dl.google.com/japanese-ime/1.10.1380.0/googlejapaneseinput32.msi
https://dl.google.com/japanese-ime/1.10.1380.0/googlejapaneseinput64.msi
https://dl.google.com/japanese-ime/1.11.1515.0/googlejapaneseinput32.msi
https://dl.google.com/japanese-ime/1.11.1515.0/googlejapaneseinput64.msi
https://dl.google.com/japanese-ime/1.12.1590.0/googlejapaneseinput32.msi
https://dl.google.com/japanese-ime/1.12.1590.0/googlejapaneseinput64.msi
https://dl.google.com/japanese-ime/1.13.1641.0/googlejapaneseinput32.msi
https://dl.google.com/japanese-ime/1.13.1641.0/googlejapaneseinput64.msi
https://dl.google.com/japanese-ime/2.17.2320.0/googlejapaneseinput32.msi
https://dl.google.com/japanese-ime/2.17.2320.0/googlejapaneseinput64.msi
https://dl.google.com/japanese-ime/2.17.2400.0/googlejapaneseinput32.msi
https://dl.google.com/japanese-ime/2.17.2400.0/googlejapaneseinput64.msi
https://dl.google.com/japanese-ime/2.19.2600.0/googlejapaneseinput32.msi
https://dl.google.com/japanese-ime/2.19.2600.0/googlejapaneseinput64.msi
https://dl.google.com/japanese-ime/2.20.2750.0/googlejapaneseinput32.msi
https://dl.google.com/japanese-ime/2.20.2750.0/googlejapaneseinput64.msi

在墙内下载Youtube视频

设置工具与环境

如果在墙内

如果在墙内,下载Youtube显然需要代理。
能够生成一个本地Http代理就可以,具体使用什么工具,随你喜欢。

下载FFMPEG

ffmpeg官网 下载 ffmpeg,解压后放到任意目录 。
注意选择Windows版本。ffmpeg-20181225-7efe84a-win64-static.zip
比如 D:\ffmpeg,可以按照需要改成任意路径,以下按照“D:\ffmpeg”为例操作。

下载Youtube-DL

Youtube-DL官网下载youtube-dl.exe,然后放在上一步得到的”D:\ffmpeg\bin”目录下。

设置环境变量

将ffmpeg的bin文件夹(D:\ffmpeg\bin)路径加入系统PATH里面。

win10:

在“此电脑“图标上点右键>属性>高级系统设置>高级>系统变量>找到变量 Path,点击编辑>新建
https://www.pconline.com.cn/win10/1083/10833025.html

win7:

位置差不多,但是如果Path不为空、需要在Path原有内容结尾添加“英文”分号,再加在最后面。
https://jingyan.baidu.com/article/b0b63dbf001cdc4a49307062.html

测试ffmpeg与youtube-dl

打开命令行、输入以下两句,没报错就成功了。

ffmpeg -version
youtube-dl --version

升级ffmpeg与youtube-dl

升级ffmpeg,去官网按照系统下载最新版、替换即可:
https://ffmpeg.org/download.html
升级youtube-dl,只需要在命令行里面运行:

youtube-dl --proxy  "http://127.0.0.1:10800/"  -U

下载视频

查看视频信息

在任意文件夹内,按着右键点鼠标右键、打开命令行窗口、粘贴命令

youtube-dl --proxy  "http://127.0.0.1:10800/" --list-formats  https://www.youtube.com/watch?v=2Qockzb3MS8

手动youtube-dl下载、自动合并

根据上一步得到的视频信息、通过命令(格式:)下载指定编号的视频+音频,让。

# youtube-dl -f [format code] [url]
youtube-dl --proxy  "http://127.0.0.1:10800/" -f 137+140 https://www.youtube.com/watch?v=2Qockzb3MS8

命令示例

自动选择、下载、合并“质量最好的视频音频”:

youtube-dl --proxy  "http://127.0.0.1:10800/" -f bestvideo+bestaudio  https://www.youtube.com/watch?v=2Qockzb3MS8

质量最好的是MP4格式:

youtube-dl --proxy  "http://127.0.0.1:10800/" -f bestvideo+bestaudio --merge-output-format mp4  https://www.youtube.com/watch?v=2Qockzb3MS8

质量最好的是webm格式:

youtube-dl --proxy  "http://127.0.0.1:10800/" -f bestvideo+bestaudio --merge-output-format webm  https://www.youtube.com/watch?v=qLRIY2wAwig

“我才不管格式,交给你处理”(有ffmpeg帮助的情况下,自动下载质量最高的视频并合并。没有ffmpeg,只有youtube-dl.exe的情况下,自动下载最高1280*720的MP4):

youtube-dl --proxy  "http://127.0.0.1:10800/" https://www.youtube.com/watch?v=qLRIY2wAwig

“我已经全局代理啦,不光格式、连代理都不想指定”:

youtube-dl  https://www.youtube.com/watch?v=2Qockzb3MS8

参考:
https://www.jianshu.com/p/8817a7b0c8d6
原文现在被简书和谐掉了。