博文

目前显示的是 2022的博文

yt-dlp下载YouTube的视频和音频流再合并 下载YouTube的指定时间段

图片
yt-dlp下载YouTube速度很快, 大大超过youtube-dl和you-get yt-dlp下载YouTube的视频和音频流再合并 但是当我们不带参数的时候,去下载一年一度喜剧大赛2的片段时,下载下来的是720p的分辨率。如果我们用 -F 参数去查询,会发现同时有视频和音频的, 分辨率最高的流就是720p  yt-dlp https://www.youtube.com/watch?v=Sy9aMd5S7eY -F 其实下载的就是下图中的 22 这个流 如果我们想下载1080p的分辨率怎么办呢? 我们可以下载1080p的视频流,再下载音频流,然后再合并为一个视频文件。 观察上面图中的音频视频流列表,我们发现137这个流是mp4格式的1080p视频,而140是m4a格式的音频流。所以我们可以下载这两个流并合并。 -f 参数是下载指定的流,下载多个流使用 + 号。 -f 137+140 --merge-output-format 参数是合并, 后面跟mp4指定合并为mp4格式。 --merge-output-format mp4 合在一起,就是: yt-dlp https://www.youtube.com/watch?v=Sy9aMd5S7eY -f 137+140 --merge-output-format mp4   yt-dlp 下载YouTube的指定时间段 有些节目并没有自己的单独片段,只能从一大段里面节选,比如<当一个龙虾人决定去>. 我们在 < S2EP10上 > 中找到起止时间点为 1:26:46 到 1:43:56 --download-sections 参数可以指定下载某一段。有些YouTube视频本身是分段的,可以指定分段的名称。如果是指定时间点的话,格式是下面这样: --download-sections "*1:26:46-1:43:56" 再结合前面指定1080p视频和音频再合并的参数,整个命令就是下面这样: yt-dlp https://youtu.be/p2c6ioGbXCs --download-sections "*1:26:46-1:43:56" -f 137+140 --merge-output-format mp4

Windows10用PoweShell在后台运行naive.exe

图片
在windows环境下跑naive客户端,不喜欢看见那个黑黑的窗口。 我们可以用PoweShell在后台运行naive.exe 这样就以无窗口的形式运行了。

V2Ray梯子 前置Caddy V2 手动修改配置文件 VLESS与Vmess协议共存

图片
如果你看正文内容觉得看不懂时,来这里补课学习一下原理: https://zelikk.blogspot.com/2022/05/v2ray-websocket-tls-caddy-path-data-flow.html 本文实操部分基于此一键脚本:  https://github.com/crazypeace/v2ray_wss 1. 修改Caddyfile 找到 handle_path 这一段,复制出来一段,把 path 和 转发端口 都修改一下。以下示例: 2. 修改config.json 找到 inbound 这一段,复制出来一段,把 protocol 切换一下,port 修改为Caddyfile对应的端口。 重启 v2ray 和 caddy service v2ray restart service caddy restart 如果你懂得 根据配置文件手工添加翻墙客户端的节点 ,那么已经可以使用了。  3. 生成节点链接 [可选项] 可以检查一下Caddyfile与config.json的参数对应关系 生成VLESS节点链接 vless:// UUID @ 节点域名 :443?encryption=none&security=tls&type=ws&host= 节点 域名 &path= 节点path # 节点备注 生成Vmess节点链接 拼装一个字符串 {"v": "2","ps": " 节点备注 ","add": " 节点 域名 ","port": "443","id": " UUID ","aid": "0","net": "ws","type": "none","host": " 节点 域名 ","path": " 节点path ","tls": "tls"} 然后丢到Base64编码工具

在自己的VPS上运行V2Ray客户端 对接自己的服务端 排错 Troubleshoot

图片
有的时候你搭的梯子就是用不了,你不知道是梯子没搭好呢,还是你走到梯子中间的路出了问题。 其实,对于WebSocket的V2Ray梯子,一般来说你只要用浏览器访问 https://你的域名/节点path 看能否得到400 Bad Request的结果就知道v2ray通不通。 在你的VPS上,可以用curl https://你的域名/节点path 来看结果。 实在不信邪,那就在你的VPS上跑一个V2Ray的客户端,对接你的服务端来看一下。 具体实践 1. 下载V2Ray的Linux客户端 * 最常见的系统环境应该是 linux-x64  比如,RackNerd, Cloudcone, Bandwagon, Hax, Woiden ... 访问 https://github.com/v2fly/v2ray-core/releases/tag/v4.45.2 右键复制下载地址 下载  wget -N https://github.com/v2fly/v2ray-core/releases/download/v4.45.2/v2ray-linux-64.zip 2. 解压V2Ray的Linux客户端 用 unzip 解压 unzip v2ray-linux-64.zip ls 一下,应该是这么几个文件 3. 设置V2Ray的Linux客户端参数 V2Ray的配置文件想要手写不是一件容易的事情,所以我这里推荐小白直接把自己本地翻墙客户端的config.json文件传上去。 如果你是用的v2rayN,那么config.json就在v2rayN.exe同目录下。 上传小文件的方法,对小白最友好的就是rz。 先安装一下 apt install -y lrzsz 然后执行rz命令 rz -y 如果你的SSH工具是Xshell等支持sz rz的,那么就会弹出来一个选择文件框,你选定你自己的config.json就好了。 这样把你自己本地的config.json传上去。 你可以看一下文件内容,注意一下Socks的端口,可能需要修改一下以免冲突。下面以Socks的端口 10811 为例。 4. 运行V2Ray的Linux客户端 ./v2ray 这时,你的VPS上已经开了一个Socks代理了。 5. 使用你的这个Socks代理去访问网页 用到curl的-x参数指定代理  新开一个SSH窗口登录

在自己的VPS上运行NaiveProxy客户端 对接自己的服务端 排错 Troubleshoot

图片
有的时候你搭的梯子就是用不了,你不知道是梯子没搭好呢,还是你走到梯子中间的网络出了问题。 其实NaiveProxy,如果你的Caddyfile的格式是写的像官方要求的一样(或者你根本就是一键脚本搭出来的)那么你只要访问你的naive域名:端口 能显示伪装站,就说明搭好了。 在你的VPS上,可以用curl https://你的域名:端口 来看结果。 实在不信邪,那就在你的VPS上跑一个NaiveProxy的客户端,对接你的服务端来看一下。 具体实践 1. 下载NaiveProxy的Linux客户端 * 最常见的系统环境应该是 linux-x64 比如,RackNerd, Cloudcone, Bandwagon, Hax, Woiden ... 访问 https://github.com/klzgrad/naiveproxy/releases/latest 右键复制下载地址 下载  wget -N https://github.com/klzgrad/naiveproxy/releases/download/v108.0.5359.94-1/naiveproxy-v108.0.5359.94-1-linux-x64.tar.xz 2. 解压NaiveProxy的Linux客户端 用 tar -xf 解压 tar -xf naiveproxy-v108.0.5359.94-1-linux-x64.tar.xz ls 看一下会发现多了一个目录。cd进去,再ls 你会看到和你在PC上使用时一样的几个文件 3. 设置NaiveProxy的Linux客户端参数 和在你自己的环境下同样的用法,编辑config.json。注意Socks端口不要和你自己的VPS上已经使用的端口冲突了。下面以Socks的端口 10811 为例。 {   "listen": "socks://127.0.0.1: 10811 ",   "proxy": "https:// naive用户名 : naive密码 @ naive域名 : naive端口 ",   "log": "" } 4. 运行NaiveProxy的Linux客户端 ./naive 这时,你的VPS上已经开了一个Soc

格式化带注释的json文件不报错的工具Visual Studio Code / DevToys / JSON5

图片
TL; DR Visual Studio Code 支持带注释的JSON,且格式化后保留注释 https://code.visualstudio.com/ 正文 json格式标准本身是不支持注释的,也正是因为这样,标准的json文件不管换不换行,哪怕一个字符一行或者整个文件全部变成一行都是可以喂给程序正常使用的。 人眼实际阅读时,当然还是带注释的格式比较方便阅读。v2ray的配置文件就是带注释规则的json格式。 网络上google出来的json文件格式化和图形化节点化工具有很多都不支持注释格式,如下图 我自己用下来, DevToys 工具小,启动快,支持过滤注释并格式化json,还是很好用的。它还有很多其它功能也很好用。 -update- JSON5 格式支持注释,在网络上搜索支持注释的JSON格式化工具就可以搜 "JSON5格式化" -update- Visual Studio Code 支持带注释的JSON,且格式化后保留注释 https://code.visualstudio.com/

NaiveProxy和V2Ray共存 Naive流量走Socks5代理进V2Ray 墙内CN域名和IP 路由到黑洞blackhole或WARP

图片
需求 如果共享NaiveProxy梯子给朋友,万一朋友开了全局模式,把墙内的CN流量丢进来了,然后梯子又去访问墙内,那么墙就知道这是个梯子了。 所以需要把 墙内CN域名和IP 路由到黑洞blackhole或WARP 而NaiveProxy服务端没有路由功能。

NaiveProxy 屏蔽墙内CN域名 使用mosdns-cn将CN域名列入黑名单 安装为服务自启动

需求 如果共享NaiveProxy梯子给朋友,万一朋友开了全局模式,把墙内的CN流量丢进来了,然后梯子又去访问墙内,那么墙就知道这是个梯子了。 所以需要把 墙内CN域名屏蔽掉。 思路 在VPS上不解析CN域名。这样,访问的请求到了NaiveProxy服务端往外走时,找不到网站的IP地址。 找了找,有个简单易用的 mosdns-cn https://github.com/IrineSistiana/mosdns-cn 实践操作 1. 下载release包 mkdir /etc/mosdns-cn && cd $_ wget -N https://github.com/IrineSistiana/mosdns-cn/releases/latest/download/mosdns-cn-linux-amd64.zip 2. unzip解压 unzip mosdns-cn-linux-amd64.zip 3. 获得geosite.dat 你可以挑你喜欢的版本下载,我这里偷懒直接把v2ray自带的拷过来算了。 cp /usr/local/share/v2ray/geosite.dat ./ 4. 修改系统dns文件 指定本机DNS服务为第一个 echo -e "nameserver 127.0.0.1\nnameserver 8.8.8.8" > /etc/resolv.conf 5. 运行一下看看效果 ./mosdns-cn -s :53 --blacklist-domain " geosite.dat:cn " --upstream 8.8.8.8 测试了一下 qq.com 和 ipw.cn , 浏览器的加载进度条就一直卡着不动。 6. 安装为服务 ./mosdns-cn  --service install  -s :53 --blacklist-domain " geosite.dat:cn " --upstream 8.8.8.8 7. 启动服务 ./mosdns-cn --service start 完

Shopify里面免了运费 Goaffpro里面计算佣金时是按产品价格计算 没有刨除运费的开销

问题 如, 产品1000, 运费200, 佣金比率20%, Goaffpro已经设置了按产品价格计算佣金. 商家设置了满899免运费的优惠, 客人实际支付1000. 本来应该计算佣金(1000-200)*20%= 160 但是因为Shopify把数据给Goaffpro时, 订单里面还是产品的价格1000. 于是, 实际佣金是1000*20%= 200 解决方案 方案1. 去掉免运费方案, 同时降低产品价格. 效果: Goaffpro的佣金计算会准确. 缺点: 消费者心理原因, 不利于促进用户买更多产品. 方案2. Shopify里面装APP, 根据运费自动生成运费折扣, 即: 产品1000, 运费200, 那么自动生成一个与运费相等的折扣, 所以最终订单是 价格800+运费200. 缺点: 还没找到这样的Shopify APP. 方案3. Goaffpro里面设置script, 如果订单的运费金额为0, 则按一定的规则扣除AFF的佣金. 当然, 这里无法得到准确的运费. 但是可以以一种近似的方法计算, 比如: 每价格1000的货物, 运往美国的运费是180, 运往德国的运费是220, 运往... 这样统计一下过往的订单, 计算出一个平均的比例, 比如 21.54% 那么Goaffpro的script可以支持这样的功能: 1) 判断运费是否为0. 如果不为0, 则按原有的逻辑计算佣金 2) 如果运费为0. 那么在计算出佣金以后, 将佣金的金额减去一个固定的比例, 如,  21.54% 缺点: 对某一个订单来说, 减去的佣金相对于实际的运费来说并不准确, 需要对AFF进行教育和解释.  不仅是不同的国家运费不一样; 不同的产品, 重量相对于售价来说的比例也不一样. 比如, 同样1000的售价, A产品是粉末, 重量0.5kg; B产品是液体, 重量2kg. 很明显运费会差别比较大.

程序中的日志等级 FATAL, ERROR, WARN, INFO, DEBUG, NOTSET

图片
1. 程序正常上线工作时,日志等级是INFO 2. 程序需要告知使用者知道的正常信息,用INFO 3. 程序记录的用于调试的信息,比如提示程序的执行的逻辑分支,打印原始数据流等。用DEBUG 4. 程序运行过程中的异常,用WARN或ERROR记录 5. 根据实际情况需要做出一些调整。 比如某些INFO出现太频繁,而程序已经跑了比较久,你相信这块功能不会出问题,那就可以把这些INFO调整为DEBUG。 比如某些WARN或ERROR出现太频繁,程序中已经做了对应的处理,而你又不能从数据的源头减少这些WARN或ERROR的话,也应该把它们视作DEBUG。也就是说它们实际上成为了"日常"。 总之,INFO及以上级别的日志是给正常工作的情况下看的,要注意有效信息的占比。

搭建 电报关键字提醒机器人 telegram keyword alert tgbot 抢 Hax US-OpenVZ

图片
白嫖 Hax Woiden 的人们都想抢一下“传说”中的 US-OpenVZ 或者 EU-BEST 小鸡。所以会关注 Hax  Woiden 库存频道等通知。但是又想过滤掉无关的信息。 那么可以用关键字提醒机器人。 GitHub: https://github.com/crazypeace/keyword_alert_bot

用spawn和expect自动回答脚本的提问 制作无人值守脚本 真正一把梭 以233v334.sh为例

图片
相信大家在使用了一段时间的各种一键脚本之后,会找到最适合自己的模式,也有了自己稳定的域名,UUID等参数。但是目前翻墙圈子里的一键脚本都喜欢做成大菜单的形式,这样每次使用的过程中, 都需要守在电脑前面选择各个选项,输入各个参数.  那有没有无人值守的方法呢? 每次安装可以真正做到一把梭? 可以把安装的命令浓缩成一行,放到Xshell的快捷命令按钮里?下面会以233v334.sh为例,讲解如何用spawn和expect自动回答脚本的提问,制作无人值守脚本,真正做到一把梭。 先看疗效 安装 expect apt install -y expect 基本原理 以安装 233脚本v3.34为例 先用 wget -N git.io/233v334.sh 下载脚本 然后在 bash 233v334.sh 的过程中自动回答问题 安装过程 Q & A   请选择 [1-2](默认Default 1.安装): 直接回车 传输协议 Transport mode (默认Default 1. TCP): 4 V2Ray 端口 Port (默认Default 63808): 直接回车 域名 Domain (例如:mydomain.com): ouyj.ga Input 4 for IPv4, 6 for IPv6 [4/6]: 4 是否已经正确解析? Is resolution correct? [y]: y 是否自动配置TLS? Setup auto TLS? [Y/n] (默认Default Y):   直接回车 是否开启 网站伪装 和 路径分流 Setup fake website and hide V2Ray behind a path? [Y/n] (默认Default Y): 直接回车 分流的路径 Path (默认Default [21d49e1e62c9]): 直接回车 伪装的网址 Camouflage site (默认Default [https://zelikk.blogspot.com]): 直接回车 是否开启广告拦截(会影响性能)  [y/N] (默认Default N): 直接回车 是否配置 Shadowsocks [y/N] (默认Default N): 直接回车 按 Enter 回车键 继续....或按 Ctrl + C 取消. 直接回车 对应 

美国国税局IRS推荐的汇率网站 及 月度 周期 平均汇率

图片
美国国税局IRS推荐的汇率网站 Oanda.com xe.com x-rates.com 来源: https://www.irs.gov/individuals/international-taxpayers/foreign-currency-and-currency-exchange-rates 月度平均汇率 快速查看每月数据列表 https://www.x-rates.com/average/?from=USD&to=EUR&amount=2&year=2022 周期平均汇率 https://www.oanda.com/fx-for-business/historical-rates 同时显示多个货币的汇率 https://www.oanda.com/fx-for-business/historical-rates

根据操作系统架构, 取最新版本Go编译环境, 编译NaïveProxy的Caddy

图片
一键执行 bash <(curl -L https://github.com/crazypeace/naive/raw/main/buildcaddy.sh) 作为我的NaiveProxy一键脚本的一部分,如果系统环境不能直接使用NaïveProxy作者编译出来的Caddy,那就自己编译一份吧。 参考 Go 官方安装过程 https://go.dev/doc/install NaïveProxy 官方编译流程 https://github.com/klzgrad/naiveproxy 其它脚本中的代码 https://github.com/shell-script/naivecaddy/blob/master/naivecaddy.sh https://lhy.life/20211218-naiveproxy/ https://github.com/233boy/v2ray/blob/master/install.sh

Shell在ping的结果中grep过滤IP地址 IPv4 IPv6

图片
IPv4的正则表达式 [0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3} 获得IPv4地址 ping 域名 - 4  -c 1 -W 2   | head -1 | grep -oP ' [0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3} ' | head -1  各个命令的意义就不啰嗦了,都可以查得到。 先说说 head -1 相当于 head -n 1 再说说为什么最后还要有个 head -1  因为如果结果是下面这样的话,grep -o 会得到2条结果 IPv6的正则表达式 ((([0-9A-Fa-f]{1,4}:){7}([0-9A-Fa-f]{1,4}|:))|(([0-9A-Fa-f]{1,4}:){6}(:[0-9A-Fa-f]{1,4}|((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9A-Fa-f]{1,4}:){5}(((:[0-9A-Fa-f]{1,4}){1,2})|:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9A-Fa-f]{1,4}:){4}(((:[0-9A-Fa-f]{1,4}){1,3})|((:[0-9A-Fa-f]{1,4})?:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){3}(((:[0-9A-Fa-f]{1,4}){1,4})|((:[0-9A-Fa-f]{1,4}){0,2}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){2}(((:[0-9A-Fa-f]{1,4}){1,5})|((:[0-9A-Fa-f]{1,4}){0,3}:((25[0-5]|2[0-4]\

自定义端口NaiveProxy与Caddy V2前置的VLESS/Vmess V2Ray共存 可开CDN

图片
* 推荐使用 Xshell 的撰写窗格,这样多行命令可以写到撰写窗格里面执行。 1. 极简一键脚本搭 Caddy V2 前置的VLESS或Vmess+WebSocket+TLS   设置好域名解析, 如 vless.mydomain.com , CDN关掉 bash <(curl -L https://github.com/crazypeace/v2ray_wss/raw/main/install.sh) 搭完自己检查一下是否能正常使用 CDN可以开 2. 搭建NaiveProxy 2.1 设置域名解析, 如 np.mydomain.com , CDN关掉 -update- 所有以下这些步骤,我做成了一个一键脚本。执行这个脚本,以下步骤都不用手搓了。 bash <(curl -L https://github.com/crazypeace/naive/raw/main/install.sh) 2.2 用Caddy官方脚本安装Caddy 来源: https://caddyserver.com/docs/install#debian-ubuntu-raspbian sudo apt install -y debian-keyring debian-archive-keyring apt-transport-https curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/gpg.key' | sudo gpg --dearmor -o /usr/share/keyrings/caddy-stable-archive-keyring.gpg curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/debian.deb.txt' | sudo tee /etc/apt/sources.list.d/caddy-stable.list sudo apt update sudo apt install caddy 2.3 下载NaiveProxy作者编译的caddy https://github.com/klzgrad/forwardproxy/releases 找最新的版本 cd /tmp wget https://

The Hotest in Last 30 Days

无服务器 自建短链服务 Url-Shorten-Worker 完整的部署教程

ClouDNS .asia免费域名 托管到CloudFlare开CDN白嫖Websocket WS通道翻墙 / desec.io