卡飯上說,因為優酷封了api,所以又回到跨域的問題了;其實這東西很好解決。
flash跨域訪問策略是一個經常會被用來防止資源盜用的方法。由網站根目錄下的crossdomain.xml配置。
下面是優酷的跨域訪問策略
1 2 3 4 5 6 7 8 |
<?xml version="1.0" encoding="UTF-8"?> <cross-domain-policy> <allow-access-from domain="*.youku.com"/> <allow-access-from domain="*.ykimg.com"/> <allow-access-from domain="*.tudou.com"/> <allow-access-from domain="*.tudouui.com"/> <allow-access-from domain="*.tdimg.com"/> </cross-domain-policy> |
目前通過替換播放器的辦法去廣告的主要有兩種,一種是替換為本地播放器,一種是替換為在線播放器;本地版有很多限制,在此略過;對在線版來說,由於託管播放器的host不在allow-access-from中,flash在執行AS時就(其實是自省的規則)無法得到優酷的視頻源。
解決方法其實是很多的,比如搭個正向代理啊,而且你看大B站……對吧……
但對於我們個人用戶來說,不可能整天電腦掛著nginx,或者為了去廣告去買個VPS,那還不如買個會員233
這裡提供一種炒雞方便的辦法繞過跨域限制。
需要:
- 可綁定域名的靜態空間,這就多了去了對吧,*AE都是可以的
- 安裝了用戶腳本管理器的瀏覽器
- 如果是*nix/Mac用戶,需要root許可權
步驟
- 上傳播放器文件(可用https://code.google.com/p/haoutil/),假設目標目錄為/antiad,以優酷為例,播放器地址為/antiad/player.swf
- 空間綁定域名wqnmlgdsb.tdimg.com,或者隨便想一個符合allow-access-from規則且不會被土豆/優酷用到的域名
- hosts添加一條[空間ip] wqnmlgdsb.tdimg.com
- 刷新DNS緩存或重啟
- 安裝YoukuAntiADs(http://userscripts.org/scripts/show/119622)
- 修改其中的https://haoutil.googlecode.com/svn/trunk/player/testmod/和https://haoutil.googlecode.com/svn/trunk/player/為http://haha.tdimg.com/antiad/,保存
完成
如果你想偷懶,只要在hosts中添加 211.151.13.46 haha.tdimg.com,然後按第6步中修改即可
提示:某些國內空間需要備案才能綁定域名,但是你要綁定的土豆/優酷域名已經備案,所以可以直接拿來用;比如JAE啊什麼的www
提示2:可以用嘗試京東雲
當然如果裝了ProxySwitchSharp之類的,你也可以重定向crossdomain.xml到自己修改的url;前提是你瀏覽器得支持啊233
最後那個這麼搞呢?
帖子找不到了,大致就是switchsharp里新建一個代理,代理規則里加一條url符合*.youku.com/crossdomain.xml是走那個代理,代理返回這樣內容的
代理是yk.pp.navi.youku.com:80這樣返回的是allow-access-from domain=”*”多說竟然把xml屏蔽了……
這個方法太巧妙了, 連伺服器都不用搭建, 給力.
試試看效果。
很不錯啊 學習http://www.520123.org