下载 You-Get
@You-Get Releases
下载 VLC
@videolan.org
下载 exe
()>_<|||) @GitHub 并将此 exe 放入 You-Get 根目录
首次打开需点击 写入注册表
按钮
安装 Tampermonkey
并添加脚本
仅允许运行一个实例
和播放并退出
最开始是因为每次下载视频时都要手动输入各种参数,控制台操作复制粘贴也不方便.
所以想用 C# 拖了个 GUI 直接调用 cmd.exe
参数配置不用管,还可以根据域名来自动选择是否使用代理.
没几行代码的事,立刻准备动手.刚才 VS 里新建项目突然想起来 You-Get 能直接调用播放器,干脆写成浏览器打开视频网址后直接用 VLC 播放算了,不光不用忍受 Flash 这渣渣,~~(还能去广告)~~
HKEY_CLASSES_ROOT
ygtxxx
URL Protocol = ""
shell
open
command
(Default) = "{Path}\YouGet.exe" "%1"
// ==UserScript==
// @name You-Get Tool
// @namespace http://tampermonkey.net/
// @version 0.1
// @description try to take over the world!
// @author You
// @include http://www.iqiyi.com/v_*
// @include http://v.youku.com/v_show/id_*
// @include http://video.sina.com.cn/*
// @include http://weibo.com/tv/v/*
// @include http://tv.sohu.com/*html*
// @include http://www.tudou.com/*html*
// @grant none
// @require https://cdn.staticfile.org/jquery/3.1.1/jquery.min.js
// ==/UserScript==
(function() {
'use strict';
var openUrl = window.location.toString();
//取 Url 参数
function getUrlParam(name) {
var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)");
var r = window.location.search.substr(1).match(reg);
if (r != null) return unescape(r[2]); return null;
}
//微博视频需转换 Url 格式
if(openUrl.indexOf("/weibo.com/tv/v") != -1){
var tempFid = getUrlParam("fid");
if(tempFid == null){
return;
}
openUrl = "http://video.weibo.com/show?fid=" + tempFid;
}
//移除页面中的 flash 元素
$("#flash,#player,#myflashBox,#playerRoom").remove();
//请求应用程序
window.location.href = "ygtxxx:sendmsg?url=" + openUrl;
//关闭页面
setTimeout("window.close()",100);
})();
所有的算下来没几行代码,但是效果很给力,各种感谢 @You-Get
很少用 C# ,大部分代码都是搜出来的.各种感谢 @Google
代码很烂,各种感谢 @吃瓜群众
其实我最好奇的是 OS X 平台上为什么没人写一个类似的呢.随便想了下就有好多解决方案.
对 MacBook 来说,收益更大.也希望这个小软件给大家提了个小思路.
自己最常用的播放器是 PotPlayer ,但是 You-Get 调用时传的参数不对人家胃口,分段的视频只能添加第一段到播放列表.有能力的可以自己改一下 You-Get 哈.
斗鱼等直播平台也完全没问题,需要的自己在脚本里匹配网址即可
本来 exe 只有 10kb 左右,添了俩图标变好大,而且自己不会删好尴尬...
1
shoaly 2017-01-14 11:04:24 +08:00
http://oss.1024it.cn/section1/20170114/png/ce9c53676bbaa77c6bf8042dd911caf9.png
这种是我自用的, 没做楼主那么复杂, c#那个 form 只响应 ctrl+v 和 直接拖拽 url 的事件, 然后调用 you-get.. 所以比楼主的多一步拖拽, 不用点进详情页面那一下 :) |
2
shoaly 2017-01-14 11:08:51 +08:00
目前 you-get 看视频有 2 个问题
1 youku 那边 6 分钟就会拆出来一段, 所以我看一些美剧长短的片子的时候, 经常播放列表到了 第 3 4 个的时候就会中断 2 即便是短的视频, 每次切换播放列表的时候会卡那么 1 2 秒(根据网速而定), 这地方要是能自动缓存下一个就好了 |
4
ashfinal 2017-01-14 13:08:49 +08:00
macOS 上不几行就可以撸个 workflow ,不过我调的 youtube-dl , you-get 问题是不会自动分段组合。
使用时直接按 cmd+u ,回车了事了。自己在用,没发出来。 |
5
czmecho 2017-01-14 13:12:27 +08:00
有意思,鉴于优酷作为国内几乎是体验最垃圾的视频网站,用这方法确实不错。
|
6
JackBlack2006 2017-01-14 13:17:19 +08:00 1
@xiaocsl 我用的这个方法 http://www.jianshu.com/p/a4dddbd39d4d?nomobile=yes 不过不知道 Chrome 系能不能用,也许楼主的可以
@ashfinal 能不能分享 workflow 看看, open with 在 OS X 下面只能支持.app , automator 我也没成功过 |
7
xiaocsl OP @JackBlack2006 更简洁的办法哈.看了下发现自己还有个逗逼的地方,哈哈.好尴尬.不过我这个扩展性更高哈 >_<|||
|
8
JackBlack2006 2017-01-14 13:40:54 +08:00
@xiaocsl 我看了代码和演示视频,很不错,但是在哪儿可以自己改成 mpv 呢?
|
9
leafleave 2017-01-14 13:44:49 +08:00 via Android
同常用 potplayer ,但小白不会改-_-||,养肥了再用
|
10
Haiwx 2017-01-14 13:58:59 +08:00
OpenWith +1
|
11
xiaocsl OP |
12
zhangfei 2017-01-15 19:23:05 +08:00 2
@shoaly 如果是 mpv 的话,可以加参数
you-get -p "mpv --cache-seek-min=300 --merge-files" http://www.acfun.cn/v/ac3262317 这样会同时下载所有分段,播放下一个分段时不会卡一下 |
13
nidhogger 2017-01-17 19:22:00 +08:00
win10 64bit chrome ,打开页面一闪而过,无法调出 vlc,请问通常是什么问题?
单独用 you-get 可以调用 vlc 播放 youku 视频。 |
15
xiaocsl OP @nidhogger 注释掉 Tampermonkey 脚本里的最后一行
setTimeout("window.close()",100); 然后再执行,弹出是否打开软件时.勾选记录.之后应该就正常了.就可以取消掉最后一行的注释了. 另外 vlc 的环境变量记得自己添加. |
16
ixinshang 2017-01-20 12:00:03 +08:00 via Android
-x 无法使用袋里下载油管视频 现在在外面,没法详细说😓
|
17
lantianqiren 2017-07-11 19:30:23 +08:00
@xiaocsl 大神你好,最近也在折腾这个调用本地播放器,
您的软件打开后,写入注册表,我点写入毫无反应, 我按照步骤,点开网页视频,你那个软件有提示,但是仍然无法调用出 VLC 播放器, 但是单独用 youget 是可以用 VLC 播放的 是不是因为注册表没写入进去的原因?有手工添加进去注册表的方法么? |
18
xiaocsl OP |
19
lantianqiren 2017-07-11 19:48:50 +08:00
github.com 在您上面留言啦
|
20
lantianqiren 2017-07-11 19:59:52 +08:00
@xiaocsl 很尴尬,本人小白,折腾好几天了,没弄好
1.能帮忙改一下 PotPlayer 然后打包成 exe 么? 还有你那个写入注册表的工具 我点写入注册表 没反应!各种折腾还是没反应! 请问有手动导入的方法么? 就是最后一步调不出播放器来 http://i2.kiimg.com/1949/34f810da4edb7725.png 一开始这个工具也没显示的 我把 Tampermonkey 脚本里最后一行 setTimeout ( “ window.close ()”,100 ); 去掉了 就可以弹出来了,只是会出来一个什么不能为空的提示 倒是不到影响点 还有爱奇艺 貌似失效了 不会弹出窗口了 -- 虽然对您来说是很简单的代码,可是对很多人来说是很需要的,麻烦您如果有时间可以更新一下额 谢谢了 |
21
lantianqiren 2017-07-11 20:41:59 +08:00
@xiaocsl 还写了点文字发到您的 github 上了,有时间您看看吧,
|