想分享一个我最近开源的小项目: LinkPeek - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
爱意满满的作品展示区。
shigella

想分享一个我最近开源的小项目: LinkPeek

  •  
  •   shigella 11 days ago 1082 views

    它解决的是一个很具体的问题:
    很多聊天软件在分享某些链接时,预览卡片抓取并不稳定,尤其是像 Bilibili 这类链接,经常出现“不出图”、“卡片信息不完整”或者不同客户端表现不一致的情况。
    如果你平时会把视频、内容链接发到 iMessage 、Telegram 、企业 IM 或其他聊天场景里,这个问题应该不陌生。

    LinkPeek 的思路很简单:

    • 输入原始链接
    • 生成一个稳定的分享链接
    • 爬虫来访问时返回规范的 Open Graph 预览页
    • 普通用户点击时再跳转回原始页面

    这样做之后,聊天软件抓到的就是统一、可控的预览信息,卡片展示会稳定很多。

    目前这个项目已经提供了这些能力:

    • 统一分享入口:/preview?url=...
    • 支持 Bilibili 视频链接
    • 兼容 b23.tv 短链
    • 自动代理缩略图,避免外部图片不稳定
    • 内置磁盘缓存,减少重复抓取
    • 提供 Dashboard ,可以看创建、打开、热门链接、趋势等统计数据
    • 支持 Docker 自托管部署
    • 自带 OpenAPI 文档页,方便调试和集成

    比较适合这些场景:

    • 想让聊天里的分享卡片更稳定
    • 想把第三方内容链接做成自己的统一分享入口
    • 想自托管一个轻量的链接预览服务
    • 想顺手统计“链接被创建了多少次、被打开了多少次”

    在线演示:
    https://linkpeek.cloud.jianyutan.com/dashboard

    GitHub:
    https://github.com/shigella520/LinkPeek

    快捷指令:
    https://www.icloud.com/shortcuts/dc6b85dc0d2244caa0a6a9a730a283e1

    如果你也有类似需求,或者对“链接预览代理 / 分享卡片稳定化”这个方向感兴趣,欢迎看看,也欢迎提建议。

    Dwayne
        1
    Dwayne  
       11 days ago
    没创建就是没有预览吗,标题都没读取出来
    另外链接太长了发出去一坨
    acbingo
        2
    acbingo  
       11 days ago
    之前项目中确实遇到的相同的痛点,是个不错的解决思路。但是我泼个冷水,你这相当于把所有的分享都统一到一个域名下,很容易被微信抖音封的
    shigella
        3
    shigella  
    OP
       11 days ago
    新增了 V2EX 的支持,直接按标题生成一个图片。
    shigella
        4
    shigella  
    OP
       11 days ago
    @Dwayne 不用生成的呀,页面上的生成只是前端拼接 url 和转义而已。
    太长可以考虑集成一个短链的功能,但是分享出去能渲染成卡片也看不见原始链接。
    shigella
        5
    shigella  
    OP
       11 days ago
    @acbingo 我目前只用在 iMessage 和朋友们聊天的时候用
    shigella
        6
    shigella  
    OP
       9 days ago

    增加 NGA 支持,需要配 uid/cid
    About     Help     Advertise     Blog     API     FAQ     Solana     1035 Online   Highest 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 33ms UTC 23:08 PVG 07:08 LAX 16:08 JFK 19:08
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86