告别广告与追踪:用Whoogle实现视频平台链接自动重定向到隐私前端

告别广告与追踪:用Whoogle实现视频平台链接自动重定向到隐私前端

【免费下载链接】whoogle-search A self-hosted, ad-free, privacy-respecting metasearch engine 【免费下载链接】whoogle-search 项目地址: https://gitcode.com/GitHub_Trending/wh/whoogle-search

当你在搜索引擎中点击视频平台链接时,是否想过避开广告和用户追踪?自托管搜索引擎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函数会对每个链接进行检测和转换。处理流程包括:

  1. 解析原始链接的域名和路径
  2. 匹配SITE_ALTS中的平台规则
  3. 替换域名部分为替代前端服务
  4. 保留原始路径和查询参数

关键实现代码位于app/utils/results.pyget_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即可自动启用链接重定向功能:

  1. 克隆仓库:

    git clone https://gitcode.com/GitHub_Trending/wh/whoogle-search
    cd whoogle-search
    
  2. 使用Docker Compose启动服务:

    docker-compose up -d
    
  3. 访问本地服务:http://localhost:5000

默认配置下,视频平台链接会自动重定向到对应的隐私前端,如YouTube链接会被转换为Invidious前端链接。

自定义替代前端实例

如果你想使用特定的隐私前端实例而非Farside服务,可以通过环境变量自定义。例如,要指定YouTube的替代实例:

# 在docker-compose.yml中添加环境变量
environment:
  - WHOOGLE_ALT_YT=inv.riverside.rocks

支持自定义的平台环境变量包括:

平台环境变量默认值
TwitterWHOOGLE_ALT_TWfarside.link/nitter
YouTubeWHOOGLE_ALT_YTfarside.link/invidious
RedditWHOOGLE_ALT_RDfarside.link/libreddit
MediumWHOOGLE_ALT_MDfarside.link/scribe
ImgurWHOOGLE_ALT_IMGfarside.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搜索结果展示

Whoogle搜索结果页面,显示已转换的YouTube链接(红框标注部分)

高级使用技巧

配合匿名视图功能

Whoogle还提供匿名视图功能,可通过"Anonymous View"链接使用Whoogle作为代理加载网页内容。这一功能在app/filter.pyappend_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搜索结果,链接重定向功能正常工作

常见问题与解决方法

重定向失效问题排查

如果链接重定向功能不工作,可按以下步骤排查:

  1. 检查环境变量是否正确设置
  2. 查看应用日志确认是否有错误信息
  3. 验证目标隐私前端实例是否可访问
  4. 确认使用的Whoogle版本是否支持该功能

处理地域限制内容

某些隐私前端可能无法访问特定地区的内容。解决方法包括:

  1. 尝试不同的隐私前端实例
  2. 通过合规代理访问地域受限内容
  3. 配置多个替代实例并使用自动切换服务

总结与展望

Whoogle的链接重定向功能为用户提供了额外的隐私保护层,使你能够在浏览网页时减少对大型平台的依赖。通过本文介绍的方法,你可以:

  • 自动将视频平台链接重定向到隐私前端
  • 自定义替代实例以优化访问速度和可靠性
  • 结合匿名视图功能进一步增强隐私保护

随着隐私意识的提高,Whoogle这类自托管工具将成为保护个人数据的重要选择。未来版本可能会加入更多自定义选项和平台支持,让用户拥有更大的控制权。

如果你觉得这篇文章有帮助,请点赞收藏并关注项目更新。如有问题或建议,欢迎在项目仓库提交issue参与讨论。

【免费下载链接】whoogle-search A self-hosted, ad-free, privacy-respecting metasearch engine 【免费下载链接】whoogle-search 项目地址: https://gitcode.com/GitHub_Trending/wh/whoogle-search

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值