告别广告与追踪:用Whoogle实现视频平台链接自动重定向到隐私前端
当你在搜索引擎中点击视频平台链接时,是否想过避开广告和用户追踪?自托管搜索引擎Whoogle Search提供了一种优雅的解决方案——自动将主流平台链接重定向到隐私友好的替代前端。本文将详细介绍这一功能的实现原理和配置方法,帮助你打造更安全的网络浏览体验。
隐私重定向功能的工作原理
Whoogle的链接重定向功能基于站点替代映射机制,通过检测搜索结果中的特定域名,自动替换为对应的隐私前端服务。这一功能主要通过两个核心模块实现:
站点替代映射配置
系统维护着一个内置的站点替代映射表,定义了主流平台与隐私前端的对应关系。核心配置位于app/utils/results.py文件的SITE_ALTS字典中:
SITE_ALTS = {
'twitter.com': os.getenv('WHOOGLE_ALT_TW', 'farside.link/nitter'),
'youtube.com': os.getenv('WHOOGLE_ALT_YT', 'farside.link/invidious'),
'reddit.com': os.getenv('WHOOGLE_ALT_RD', 'farside.link/libreddit'),
# 更多平台映射...
}
默认配置使用Farside服务作为中间跳转,该服务会自动选择可用的隐私前端实例。你也可以通过环境变量自定义特定平台的替代服务。
链接处理流程
当Whoogle处理搜索结果时,get_site_alt函数会对每个链接进行检测和转换。处理流程包括:
- 解析原始链接的域名和路径
- 匹配
SITE_ALTS中的平台规则 - 替换域名部分为替代前端服务
- 保留原始路径和查询参数
关键实现代码位于app/utils/results.py的get_site_alt函数:
def get_site_alt(link: str, site_alts: dict = SITE_ALTS) -> str:
parsed_link = urlparse.urlparse(link)
hostname = '.'.join(parsed_link.netloc.split('.')[-2:])
for site_key in site_alts.keys():
site_alt = f'{parsed_link.scheme}://{site_key}'
if not hostname or site_alt not in hostcomp or not site_alts[site_key]:
continue
# 执行域名替换逻辑
link = link.replace(hostname, site_alts[site_key]) + params
# 处理特殊情况和参数传递
# ...
return link
配置与使用方法
基础部署与默认配置
如果你使用默认配置,只需通过以下步骤部署Whoogle即可自动启用链接重定向功能:
-
克隆仓库:
git clone https://gitcode.com/GitHub_Trending/wh/whoogle-search cd whoogle-search -
使用Docker Compose启动服务:
docker-compose up -d -
访问本地服务:http://localhost:5000
默认配置下,视频平台链接会自动重定向到对应的隐私前端,如YouTube链接会被转换为Invidious前端链接。
自定义替代前端实例
如果你想使用特定的隐私前端实例而非Farside服务,可以通过环境变量自定义。例如,要指定YouTube的替代实例:
# 在docker-compose.yml中添加环境变量
environment:
- WHOOGLE_ALT_YT=inv.riverside.rocks
支持自定义的平台环境变量包括:
| 平台 | 环境变量 | 默认值 |
|---|---|---|
| WHOOGLE_ALT_TW | farside.link/nitter | |
| YouTube | WHOOGLE_ALT_YT | farside.link/invidious |
| WHOOGLE_ALT_RD | farside.link/libreddit | |
| Medium | WHOOGLE_ALT_MD | farside.link/scribe |
| Imgur | WHOOGLE_ALT_IMG | farside.link/rimgo |
添加自定义重定向规则
对于未包含在默认配置中的平台,你可以通过WHOOGLE_REDIRECTS环境变量添加自定义规则:
# 格式:原始域名1:替代域名1,原始域名2:替代域名2
WHOOGLE_REDIRECTS="example.com:alt.example.com,test.net:proxy.test.net"
这将在app/utils/results.py的SITE_ALTS字典中合并自定义规则:
# 合并自定义重定向规则
SITE_ALTS.update(list_to_dict(re.split(',|:', os.getenv('WHOOGLE_REDIRECTS', ''))))
功能验证与效果展示
使用Whoogle搜索"Python教程 YouTube",搜索结果中的YouTube链接会自动转换为隐私前端链接:
原始链接:https://www.youtube.com/watch?v=abc123 转换后:https://farside.link/invidious/watch?v=abc123
点击转换后的链接,将直接在Invidious前端打开视频,避免加载YouTube的广告和追踪脚本。
Whoogle搜索结果页面,显示已转换的YouTube链接(红框标注部分)
高级使用技巧
配合匿名视图功能
Whoogle还提供匿名视图功能,可通过"Anonymous View"链接使用Whoogle作为代理加载网页内容。这一功能在app/filter.py的append_anon_view函数中实现:
def append_anon_view(result: BeautifulSoup, config: Config) -> None:
av_link = BeautifulSoup(features='html.parser').new_tag('a')
nojs = 'nojs=1' if config.nojs else 'nojs=0'
location = f'location={result["href"]}'
av_link['href'] = f'{Endpoint.window}?{nojs}&{location}'
av_link.string = f'{translation["anon-view"]}'
result.append(av_link)
启用后,每个搜索结果会显示"Anonymous View"链接,点击后将通过Whoogle代理加载页面,进一步增强隐私保护。
移动设备支持
Whoogle完全支持移动设备访问,重定向功能在移动界面中同样生效。移动设备访问效果:
移动设备上的Whoogle搜索结果,链接重定向功能正常工作
常见问题与解决方法
重定向失效问题排查
如果链接重定向功能不工作,可按以下步骤排查:
- 检查环境变量是否正确设置
- 查看应用日志确认是否有错误信息
- 验证目标隐私前端实例是否可访问
- 确认使用的Whoogle版本是否支持该功能
处理地域限制内容
某些隐私前端可能无法访问特定地区的内容。解决方法包括:
- 尝试不同的隐私前端实例
- 通过合规代理访问地域受限内容
- 配置多个替代实例并使用自动切换服务
总结与展望
Whoogle的链接重定向功能为用户提供了额外的隐私保护层,使你能够在浏览网页时减少对大型平台的依赖。通过本文介绍的方法,你可以:
- 自动将视频平台链接重定向到隐私前端
- 自定义替代实例以优化访问速度和可靠性
- 结合匿名视图功能进一步增强隐私保护
随着隐私意识的提高,Whoogle这类自托管工具将成为保护个人数据的重要选择。未来版本可能会加入更多自定义选项和平台支持,让用户拥有更大的控制权。
如果你觉得这篇文章有帮助,请点赞收藏并关注项目更新。如有问题或建议,欢迎在项目仓库提交issue参与讨论。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考





