<?xml version="1.0" encoding="UTF-8"?><rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>文乃的小站</title><description>记录生活，分享美好</description><link>https://ayano29.cn/</link><language>zh_CN</language><item><title>引导贴</title><link>https://ayano29.cn/posts/guide-post/</link><guid isPermaLink="true">https://ayano29.cn/posts/guide-post/</guid><description>现在发链接各种不方便，直接在博客里搞个转接感觉方便多了</description><pubDate>Sun, 07 Dec 2025 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;建了个qq群 可以来玩玩&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://image29135.oss-cn-wuhan-lr.aliyuncs.com/imag/Pasted%20image%2020260330204705.png&quot; alt=&quot;Pasted image 20260330204705&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;novelpia吧&lt;/h2&gt;
&lt;p&gt;novelpia吧里来的看这边，现在机翻站复活了 感觉我没啥必要干搬运了 直接去机翻站看吧 ，就是r18要登录天数和认证才能看&lt;/p&gt;
&lt;h3&gt;资源链接&lt;/h3&gt;
&lt;p&gt;&lt;a href=&quot;https://pan.xunlei.com/s/VOh9cEHYqFq9SIbSGATycHrjA1?pwd=kc3r#&quot;&gt;迅雷网盘&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://pan.xunlei.com/s/VOh9cKgHu-78anDN8t9xx-z4A1?pwd=e27c#&quot;&gt;备用&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://pan.xunlei.com/s/VOh9f5nQ1ZO2tqs8uH1Ep3Y_A1?pwd=c3y6#&quot;&gt;阅读软件&lt;/a&gt; 阅读app是压缩包，不会用的可以用静读天下&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;/resources/entertainment/manga/manga-software-guide/&quot;&gt;漫画资源点这里&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;详细可以看这个，按顺序介绍了大家要的书
&lt;a href=&quot;/resources/entertainment/novels/korean-light-novels/&quot;&gt;韩轻拼好书&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;求书直接在贴吧发帖子就行，看见了会发的&lt;/p&gt;
</content:encoded></item><item><title>学习通签到</title><link>https://ayano29.cn/posts/xuexitong-checkin/</link><guid isPermaLink="true">https://ayano29.cn/posts/xuexitong-checkin/</guid><description>大学生网课签到神器，第三方小程序代签教程</description><pubDate>Mon, 06 Apr 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;之前还可以用学习通微信一个手机登录两个号，现在都被封完了&lt;/p&gt;
&lt;p&gt;现在基本上就是第三方小程序代签了 ，当然最好还是直接把手机给舍友最简单方便&lt;/p&gt;
&lt;h1&gt;御坂博学笃行小程序&lt;/h1&gt;
&lt;p&gt;扫码关注公众号会给你另一个二维码
&lt;img src=&quot;https://image29135.oss-cn-wuhan-lr.aliyuncs.com/imag/mmexport1775289638888.jpg&quot; alt=&quot;mmexport1775289638888&quot; /&gt;&lt;/p&gt;
&lt;p&gt;扫完后进入，点击爱学习，进去后有账号管理 ，账号管理登录好后，去点击会员中心看广告升级会员。
&lt;img src=&quot;https://image29135.oss-cn-wuhan-lr.aliyuncs.com/imag/Pasted%20image%2020260404160844.png&quot; alt=&quot;Pasted image 20260404160844&quot; /&gt;
在课程学习里可以看到课程列表 。
除了二维码签到要发给舍友一个链接让他代签
像位置签到可以获取其他人位置
手势 数字直接签到
拍照可以自己提前搞好图片或者要一张图片上传签到&lt;/p&gt;
&lt;p&gt;还挺方便的 ，可以试试&lt;/p&gt;
</content:encoded></item><item><title>英语四六级</title><link>https://ayano29.cn/posts/cet4-6/</link><guid isPermaLink="true">https://ayano29.cn/posts/cet4-6/</guid><description>英语四六级历年真题资源分享</description><pubDate>Sat, 04 Apr 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;可以下载下来直接给ai搞一个知识库 ，做完就问，很方便的
数据本地化真的很方便&lt;/p&gt;
&lt;h1&gt;英语四级&lt;/h1&gt;
&lt;p&gt;1990到2025
&lt;img src=&quot;https://image29135.oss-cn-wuhan-lr.aliyuncs.com/imag/Pasted%20image%2020260404155106.png&quot; alt=&quot;Pasted image 20260404155106&quot; /&gt;
有试卷有对照答案&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://image29135.oss-cn-wuhan-lr.aliyuncs.com/imag/Pasted%20image%2020260404155415.png&quot; alt=&quot;Pasted image 20260404155415&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://image29135.oss-cn-wuhan-lr.aliyuncs.com/imag/Pasted%20image%2020260404155353.png&quot; alt=&quot;Pasted image 20260404155353&quot; /&gt;&lt;/p&gt;
&lt;h1&gt;英语六级&lt;/h1&gt;
&lt;p&gt;1990到2025 基本上东西都差不多&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://image29135.oss-cn-wuhan-lr.aliyuncs.com/imag/Pasted%20image%2020260404155643.png&quot; alt=&quot;Pasted image 20260404155643&quot; /&gt;&lt;/p&gt;
</content:encoded></item><item><title>网赚平台</title><link>https://ayano29.cn/posts/rentui-guide/</link><guid isPermaLink="true">https://ayano29.cn/posts/rentui-guide/</guid><description>网上赚钱的基本模式介绍，通过推广平台做拉新赚佣金</description><pubDate>Sat, 04 Apr 2026 00:00:00 GMT</pubDate><content:encoded>&lt;h1&gt;任推帮&lt;/h1&gt;
&lt;p&gt;网址： &lt;a href=&quot;https://www.ycj.com/main/dtzt2?ly=sm_bd1_mp21&amp;amp;bd_vid=8431803523437978577&quot;&gt;任推邦&lt;/a&gt;
&lt;img src=&quot;https://image29135.oss-cn-wuhan-lr.aliyuncs.com/imag/Pasted%20image%2020260404131249.png&quot; alt=&quot;Pasted image 20260404131249&quot; /&gt;&lt;/p&gt;
&lt;p&gt;现在的网上项目基本上就是这种模式 ，各种平台要新人就发钱给推广机构   推广软件申请好资格 发链接拉新人给你钱，线下找人扫二维码也是一个人十几块&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;邀请码   6362597&lt;/strong&gt;
&lt;img src=&quot;https://image29135.oss-cn-wuhan-lr.aliyuncs.com/imag/Pasted%20image%2020260404131032.png&quot; alt=&quot;Pasted image 20260404131032&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;注册&lt;/h2&gt;
&lt;p&gt;要邀请码 可以填我的&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://image29135.oss-cn-wuhan-lr.aliyuncs.com/imag/Pasted%20image%2020260404131806.png&quot; alt=&quot;Pasted image 20260404131806&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;申请项目推广资格&lt;/h2&gt;
&lt;p&gt;先找好你要做啥 ，就那我的迅雷的韩轻拼好书来做例子。
当时没有事情搞的这个，去申请推广权限，填写完后你的账号就有了推广权限，你拉新就可以在这里看到了&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://image29135.oss-cn-wuhan-lr.aliyuncs.com/imag/Snipaste_2026-04-04_13-27-53%202.png&quot; alt=&quot;Snipaste_2026-04-04_13-27-53 2&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;最后就是推广了&lt;/h2&gt;
&lt;p&gt;找自己的擅长的东西去发视频，发评论 ，b站很多涩图置顶是网盘的大多也都是这样玩的&lt;/p&gt;
&lt;p&gt;大概就是这样先写一个&lt;/p&gt;
</content:encoded></item><item><title>轻小说资源推荐</title><link>https://ayano29.cn/posts/%E5%B0%8F%E8%AF%B4%E8%B5%84%E6%BA%90/%E8%BD%BB%E5%B0%8F%E8%AF%B4%E8%B5%84%E6%BA%90%E6%8E%A8%E8%8D%90/</link><guid isPermaLink="true">https://ayano29.cn/posts/%E5%B0%8F%E8%AF%B4%E8%B5%84%E6%BA%90/%E8%BD%BB%E5%B0%8F%E8%AF%B4%E8%B5%84%E6%BA%90%E6%8E%A8%E8%8D%90/</guid><description>常用轻小说站点、韩轻机翻站和阅读整理工具汇总。</description><pubDate>Wed, 01 Apr 2026 00:00:00 GMT</pubDate><content:encoded>&lt;h1&gt;资源&lt;/h1&gt;
&lt;h2&gt;esj&lt;/h2&gt;
&lt;p&gt;&lt;a href=&quot;https://www.esjzone.cc/&quot;&gt;ESJ Zone&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://image29135.oss-cn-wuhan-lr.aliyuncs.com/imag/Pasted%20image%2020260401144810.png&quot; alt=&quot;Pasted image 20260401144810&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;哔哩轻小说&lt;/h2&gt;
&lt;p&gt;&lt;a href=&quot;https://www.linovelib.com/?ref=codernav.com&quot;&gt;哔哩轻小说&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://image29135.oss-cn-wuhan-lr.aliyuncs.com/imag/Pasted%20image%2020260402083241.png&quot; alt=&quot;Pasted image 20260402083241&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;轻小说文库&lt;/h2&gt;
&lt;p&gt;&lt;a href=&quot;https://www.wenku8.net/index.php&quot;&gt;轻小说文库&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://image29135.oss-cn-wuhan-lr.aliyuncs.com/imag/Pasted%20image%2020260402083330.png&quot; alt=&quot;Pasted image 20260402083330&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;真白萌&lt;/h2&gt;
&lt;p&gt;&lt;a href=&quot;https://masiro.me/admin/novels&quot;&gt;真白萌&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://image29135.oss-cn-wuhan-lr.aliyuncs.com/imag/Pasted%20image%2020260401144752.png&quot; alt=&quot;Pasted image 20260401144752&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;轻小说机翻机器人&lt;/h2&gt;
&lt;p&gt;&lt;a href=&quot;https://n.novelia.cc/&quot;&gt;轻小说机翻机器人&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://image29135.oss-cn-wuhan-lr.aliyuncs.com/imag/Pasted%20image%2020260401144658.png&quot; alt=&quot;Pasted image 20260401144658&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;novelpia 韩轻机翻&lt;/h2&gt;
&lt;p&gt;&lt;a href=&quot;https://novalpie.cc/&quot;&gt;韩轻机翻站&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://image29135.oss-cn-wuhan-lr.aliyuncs.com/imag/Pasted%20image%2020260401144210.png&quot; alt=&quot;Pasted image 20260401144210&quot; /&gt;
&lt;img src=&quot;https://image29135.oss-cn-wuhan-lr.aliyuncs.com/imag/Pasted%20image%2020251017195943.png&quot; alt=&quot;Pasted image 20251017195943&quot; /&gt;
&lt;img src=&quot;https://image29135.oss-cn-wuhan-lr.aliyuncs.com/imag/Pasted%20image%2020251017200004.png&quot; alt=&quot;Pasted image 20251017200004&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;书兔网 韩轻&lt;/h2&gt;
&lt;p&gt;&lt;a href=&quot;https://booktoki469.com/&quot;&gt;북토끼 - 웹소설 자료실&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://image29135.oss-cn-wuhan-lr.aliyuncs.com/imag/Pasted%20image%2020260401144517.png&quot; alt=&quot;Pasted image 20260401144517&quot; /&gt;&lt;/p&gt;
&lt;h1&gt;工具&lt;/h1&gt;
&lt;h2&gt;epub编辑器 calibre&lt;/h2&gt;
&lt;p&gt;&lt;a href=&quot;https://www.bilibili.com/video/BV1De41197Mu?spm_id_from=333.788.recommend_more_video.1&amp;amp;vd_source=05c30d87ead2eea4eabcc38a5a4f32fd&quot;&gt;开源电子书管理神器calibre，一站式阅读，编辑，格式转换，翻译你的电子书|换封面|calibre使用指南|一键翻译外文书|免费用_哔哩哔哩_bilibili&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;编辑元数据
更换封面&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://image29135.oss-cn-wuhan-lr.aliyuncs.com/imag/Pasted%20image%2020250808163357.png&quot; alt=&quot;Pasted image 20250808163357&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;爬虫&lt;/h2&gt;
&lt;p&gt;小说下载器&lt;br /&gt;
https://cdnjs.cloudflare.com/ajax/libs/core-js/2.4.1/core.js 关闭url请求&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://image29135.oss-cn-wuhan-lr.aliyuncs.com/imag/Pasted%20image%2020250731200333.png&quot; alt=&quot;Pasted image 20250731200333&quot; /&gt;&lt;/p&gt;
&lt;p&gt;novapie机翻站的爬虫我搞了一个，会玩的可以试试&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://github.com/1685901916/novalpie-scraper-gui&quot;&gt;机翻站爬虫&lt;/a&gt;&lt;/p&gt;
</content:encoded></item><item><title>韩轻拼好书</title><link>https://ayano29.cn/posts/%E5%B0%8F%E8%AF%B4%E8%B5%84%E6%BA%90/%E9%9F%A9%E8%BD%BB%E6%8B%BC%E5%A5%BD%E4%B9%A6/</link><guid isPermaLink="true">https://ayano29.cn/posts/%E5%B0%8F%E8%AF%B4%E8%B5%84%E6%BA%90/%E9%9F%A9%E8%BD%BB%E6%8B%BC%E5%A5%BD%E4%B9%A6/</guid><description>贴吧把我二十多楼的贴直接删了，没办法在这写吧，在被删一回心态真的要崩了</description><pubDate>Sun, 07 Dec 2025 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;贴吧把我二十多楼的贴直接删了，没办法在这写吧，在被删一回心态真的要崩了&lt;/p&gt;
&lt;p&gt;资源获取是
&lt;a href=&quot;https://yun.139.com/shareweb/#/w/i/2rJV7xt3HAbg7&quot;&gt;移动网盘&lt;/a&gt;
迅雷网盘 直接在app里面搜韩轻拼好书就行了&lt;/p&gt;
&lt;h1&gt;0 拼好书集合&lt;/h1&gt;
&lt;p&gt;吧主发的书单集合资源，有不少乱七八糟的东西，但还是缺了不少书，可以去看看
&lt;img src=&quot;https://image29135.oss-cn-wuhan-lr.aliyuncs.com/imag/Pasted%20image%2020251206145856.png&quot; alt=&quot;Pasted image 20251206145856&quot; /&gt;&lt;/p&gt;
&lt;h1&gt;1 浪漫小说的主角只喜欢我&lt;/h1&gt;
&lt;p&gt;&lt;img src=&quot;https://image29135.oss-cn-wuhan-lr.aliyuncs.com/imag/Pasted%20image%2020251012131042.png&quot; alt=&quot;Pasted image 20251012131042&quot; /&gt;
轮回系作品，男主一次一次轮回，与不同却相似的女主相遇相处的故事&lt;/p&gt;
&lt;p&gt;这本真强吧，玛丽真王朝了，今年想不出来有哪本韩轻能比这本强，反正在我这应该是年度作品了&lt;/p&gt;
&lt;p&gt;玛丽超可爱的，看着玛丽一点一点把男主融化真的很甜， 米虫玛丽超可爱  ，虽然大部分时间都很残念&lt;/p&gt;
&lt;p&gt;我比较喜欢这一段
88章   继承第二周目,夫君兰塞尔.
&quot;敢逃第二次我就左拥右抱两个女人。
&quot;&quot;兰塞尔大人？！
&quot;&quot;逃三次就三个，四次就四个。
&quot;&quot;咿呀——！&quot;
&lt;img src=&quot;https://image29135.oss-cn-wuhan-lr.aliyuncs.com/imag/Pasted%20image%2020250904223702.png&quot; alt=&quot;Pasted image 20250904223702&quot; /&gt;&lt;/p&gt;
&lt;h1&gt;2 借妻条约&lt;/h1&gt;
&lt;p&gt;这本是吧里最火的一本书了，死掉的帖子都有六七个了，私信全是求这本的，我准备了两版&lt;/p&gt;
&lt;h1&gt;3 TS美少女附身后竟然被催眠…？&lt;/h1&gt;
&lt;p&gt;&lt;img src=&quot;https://image29135.oss-cn-wuhan-lr.aliyuncs.com/imag/Pasted%20image%2020251007201051.png&quot; alt=&quot;Pasted image 20251007201051&quot; /&gt;
这本很涩，尺度很大&lt;/p&gt;
&lt;p&gt;比雪荷不是玩具，青梅竹马催眠强太多了，女主是真心喜欢娚主，后面还让娚主在上面做过两回，世妍会害羞也会爱惜娚主。不过做法还是太艹了&lt;/p&gt;
&lt;p&gt;是可以感受到爱的作品，现在大部分催眠调教完全就是把人当玩具，感情是相互的，有互动的才更好看吧。
说到底sm也是是调情的工具，又不是单纯的施暴，m是喜欢调情又不是喜欢被打&lt;/p&gt;
&lt;h1&gt;4 我被黑幕家族收养了&lt;/h1&gt;
&lt;p&gt;&lt;img src=&quot;https://image29135.oss-cn-wuhan-lr.aliyuncs.com/imag/Pasted%20image%2020251206135920.png&quot; alt=&quot;Pasted image 20251206135920&quot; /&gt;
婴儿盐的作品
这本没看完，听说主角情商不太好，婴儿盐肯定要看我的小公女殿下 这是真神   黑幕家族我感觉一般吧&lt;/p&gt;
&lt;h1&gt;5 成为毁灭世界的魔女 好感度全是-100   完结&lt;/h1&gt;
&lt;p&gt;&lt;img src=&quot;https://image29135.oss-cn-wuhan-lr.aliyuncs.com/imag/Pasted%20image%2020251205143045.png&quot; alt=&quot;Pasted image 20251205143045&quot; /&gt;&lt;/p&gt;
&lt;p&gt;这本完结了，我倒是看完了，皇女和师傅写的很好，其他的角色受限篇幅倒是一般吧  总体还是好作品&lt;/p&gt;
&lt;h1&gt;6 成为学院黑幕的女儿&lt;/h1&gt;
&lt;p&gt;&lt;img src=&quot;https://image29135.oss-cn-wuhan-lr.aliyuncs.com/imag/Pasted%20image%2020251206140812.png&quot; alt=&quot;Pasted image 20251206140812&quot; /&gt;
这本老长了，算误解系，女主纯风傲天&lt;/p&gt;
&lt;h1&gt;7 成为北部大公的小儿子&lt;/h1&gt;
&lt;p&gt;这个没看过，伪娘tag？&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://image29135.oss-cn-wuhan-lr.aliyuncs.com/imag/Pasted%20image%2020251206140253.png&quot; alt=&quot;Pasted image 20251206140253&quot; /&gt;&lt;/p&gt;
&lt;h1&gt;8 成为皇帝培养的巫女&lt;/h1&gt;
&lt;p&gt;没看过把tag列一下
奇幻 言情 性转 轻度致郁 癌变 纯爱 魔物 东方奇幻   龙人
&lt;img src=&quot;https://image29135.oss-cn-wuhan-lr.aliyuncs.com/imag/Pasted%20image%2020251206140920.png&quot; alt=&quot;Pasted image 20251206140920&quot; /&gt;&lt;/p&gt;
&lt;h1&gt;9 放弃攻略女主角&lt;/h1&gt;
&lt;p&gt;259章
&lt;img src=&quot;https://image29135.oss-cn-wuhan-lr.aliyuncs.com/imag/Pasted%20image%2020251206141147.png&quot; alt=&quot;Pasted image 20251206141147&quot; /&gt;&lt;/p&gt;
&lt;p&gt;76章
&lt;img src=&quot;https://image29135.oss-cn-wuhan-lr.aliyuncs.com/imag/Pasted%20image%2020251206141119.png&quot; alt=&quot;Pasted image 20251206141119&quot; /&gt;&lt;/p&gt;
&lt;h1&gt;10 飞机杯无线连接&lt;/h1&gt;
&lt;p&gt;这个本子挺火的
&lt;img src=&quot;https://image29135.oss-cn-wuhan-lr.aliyuncs.com/imag/Pasted%20image%2020251206141228.png&quot; alt=&quot;Pasted image 20251206141228&quot; /&gt;&lt;/p&gt;
&lt;h1&gt;11 来自未来的情书 完结&lt;/h1&gt;
&lt;p&gt;这个完结了  999章
&lt;img src=&quot;https://image29135.oss-cn-wuhan-lr.aliyuncs.com/imag/Pasted%20image%2020251206142828.png&quot; alt=&quot;Pasted image 20251206142828&quot; /&gt;&lt;/p&gt;
&lt;h1&gt;12 异世界人妻猎人&lt;/h1&gt;
&lt;p&gt;这个漫画还行&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://image29135.oss-cn-wuhan-lr.aliyuncs.com/imag/Pasted%20image%2020251206144519.png&quot; alt=&quot;Pasted image 20251206144519&quot; /&gt;&lt;/p&gt;
&lt;h1&gt;13 魔法少女想要退休&lt;/h1&gt;
&lt;p&gt;魔法少女yyds 是下班成为魔法少女那种类型
不过这本是哥哥，那本是父亲
插图很可爱，这本的看点是性冷淡ptsd男主 被迫营业  很可爱&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://image29135.oss-cn-wuhan-lr.aliyuncs.com/imag/Pasted%20image%2020251206144714.png&quot; alt=&quot;Pasted image 20251206144714&quot; /&gt;&lt;/p&gt;
&lt;h1&gt;14 末世催眠师&lt;/h1&gt;
&lt;p&gt;看评论说一般，不够这个标题一眼望到头，不如去看末世枭雄
&lt;img src=&quot;https://image29135.oss-cn-wuhan-lr.aliyuncs.com/imag/Pasted%20image%2020251206144751.png&quot; alt=&quot;Pasted image 20251206144751&quot; /&gt;&lt;/p&gt;
&lt;h1&gt;15 契约制魔法少女怎么可能可能可爱&lt;/h1&gt;
&lt;p&gt;韩轻TS真多啊
&lt;img src=&quot;https://image29135.oss-cn-wuhan-lr.aliyuncs.com/imag/Pasted%20image%2020251206144941.png&quot; alt=&quot;Pasted image 20251206144941&quot; /&gt;&lt;/p&gt;
&lt;h1&gt;16 随心所欲的异世界催眠&lt;/h1&gt;
&lt;p&gt;这本400m 插图挺好看的
&lt;img src=&quot;https://image29135.oss-cn-wuhan-lr.aliyuncs.com/imag/Pasted%20image%2020251206145005.png&quot; alt=&quot;Pasted image 20251206145005&quot; /&gt;
&lt;img src=&quot;https://image29135.oss-cn-wuhan-lr.aliyuncs.com/imag/Pasted%20image%2020251206145044.png&quot; alt=&quot;Pasted image 20251206145044&quot; /&gt;&lt;/p&gt;
&lt;h1&gt;17 色情鬼故事不是很可怕吗&lt;/h1&gt;
&lt;p&gt;正太文，男主被各种女鬼抓住艾草
&lt;img src=&quot;https://image29135.oss-cn-wuhan-lr.aliyuncs.com/imag/Pasted%20image%2020251206145111.png&quot; alt=&quot;Pasted image 20251206145111&quot; /&gt;&lt;/p&gt;
&lt;h1&gt;18 拜托拜托app&lt;/h1&gt;
&lt;p&gt;有本子&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://image29135.oss-cn-wuhan-lr.aliyuncs.com/imag/Pasted%20image%2020251206145637.png&quot; alt=&quot;Pasted image 20251206145637&quot; /&gt;&lt;/p&gt;
&lt;h1&gt;19 特色新视界&lt;/h1&gt;
&lt;p&gt;这给漫画也挺火的，小说没看过&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://image29135.oss-cn-wuhan-lr.aliyuncs.com/imag/Pasted%20image%2020251206145252.png&quot; alt=&quot;Pasted image 20251206145252&quot; /&gt;&lt;/p&gt;
&lt;h1&gt;20 第一轮的女主角记得调教&lt;/h1&gt;
&lt;p&gt;esj上有精翻
&lt;img src=&quot;https://image29135.oss-cn-wuhan-lr.aliyuncs.com/imag/Pasted%20image%2020251206140540.png&quot; alt=&quot;Pasted image 20251206140540&quot; /&gt;
&lt;img src=&quot;https://image29135.oss-cn-wuhan-lr.aliyuncs.com/imag/Pasted%20image%2020251206140417.png&quot; alt=&quot;Pasted image 20251206140417&quot; /&gt;&lt;/p&gt;
&lt;h1&gt;21 东罗马帝国的天才皇女&lt;/h1&gt;
&lt;p&gt;非常好的ts嫁历史文，字数也多&lt;/p&gt;
&lt;p&gt;各方面素质都很高的军宅文，作者是万恶的p社玩家，知识储备量算丰富的，精罗这一块。 虽然是韩轻，但里面的中国元素都快比韩国元素多了，作者多次引用三国故事，neta古代兵法，还提了糖葫芦等中国食物（都明确标注了是中国的），主人公设定里甚至还有条&quot;从小看四渡赤水&quot;。里面赛马娘、游戏王之类的acg neta要素也有很多。 总之就是把里面韩国相关内容去掉，会让人觉得就是老中写的书的程度（ 感情戏这边进展不算快，ts主的各种心理算比较到位，小情趣这块也ok。男主是历史官配，死正经木头忠臣人设。
&lt;img src=&quot;https://image29135.oss-cn-wuhan-lr.aliyuncs.com/imag/Pasted%20image%2020251206145446.png&quot; alt=&quot;Pasted image 20251206145446&quot; /&gt;&lt;/p&gt;
&lt;h1&gt;22 我想成为vtuber&lt;/h1&gt;
&lt;p&gt;&lt;img src=&quot;https://image29135.oss-cn-wuhan-lr.aliyuncs.com/imag/Pasted%20image%2020251206134746.jpg&quot; alt=&quot;Pasted image 20251206134746&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://image29135.oss-cn-wuhan-lr.aliyuncs.com/imag/Pasted%20image%2020251206134723.jpg&quot; alt=&quot;Pasted image 20251206134723&quot; /&gt;&lt;/p&gt;
&lt;h1&gt;23 穿越到武侠世界&lt;/h1&gt;
&lt;p&gt;这本好长，esj上精翻都有上千章了&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://image29135.oss-cn-wuhan-lr.aliyuncs.com/imag/Pasted%20image%2020251206135001.jpg&quot; alt=&quot;Pasted image 20251206135001&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://image29135.oss-cn-wuhan-lr.aliyuncs.com/imag/Pasted%20image%2020251206135006.jpg&quot; alt=&quot;Pasted image 20251206135006&quot; /&gt;&lt;/p&gt;
</content:encoded></item><item><title>本子软件介绍</title><link>https://ayano29.cn/posts/%E6%BC%AB%E7%94%BB%E8%B5%84%E6%BA%90/%E6%9C%AC%E5%AD%90%E8%BD%AF%E4%BB%B6%E4%BB%8B%E7%BB%8D/</link><guid isPermaLink="true">https://ayano29.cn/posts/%E6%BC%AB%E7%94%BB%E8%B5%84%E6%BA%90/%E6%9C%AC%E5%AD%90%E8%BD%AF%E4%BB%B6%E4%BB%8B%E7%BB%8D/</guid><description>漫画资源获取渠道介绍，包括禁漫天堂、e站、哔咔等平台</description><pubDate>Sun, 07 Dec 2025 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;&lt;a href=&quot;https://pan.xunlei.com/s/VOh9fU0rMqa9EKindNgIdhaCA1?pwd=s45v#&quot;&gt;漫画资源点这里&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://image29135.oss-cn-wuhan-lr.aliyuncs.com/imag/Pasted%20image%2020251207183331.png&quot; alt=&quot;Pasted image 20251207183331&quot; /&gt;&lt;/p&gt;
&lt;h1&gt;禁漫天堂&lt;/h1&gt;
&lt;p&gt;&lt;a href=&quot;https://18comic.vip/&quot;&gt;18comic.vip&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;看一看350   吧（&lt;/p&gt;
&lt;p&gt;流传于各大评论区中，id传播最方便的一集，会看这个可以在评论区里看到不少英雄传播&lt;/p&gt;
&lt;p&gt;不然都有英雄了，你还不会用也太可惜了&lt;/p&gt;
&lt;h1&gt;e站&lt;/h1&gt;
&lt;p&gt;&lt;a href=&quot;https://exhentai.org/&quot;&gt;https://exhentai.org/&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;夯&lt;/p&gt;
&lt;p&gt;版本很多，用绿的就行，这个使用体验很好，本子资源最多，有多语言&lt;/p&gt;
&lt;p&gt;这个注册一定一定要用欧美梯子，里站是要资格的，注册后过一段时间应该就能用了&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://github.com/xiaojieonly/Ehviewer_CN_SXJ/issues/1065&quot;&gt;如何注册并进入里站，解决（哭泣熊猫） · Issue #1065 · xiaojieonly/Ehviewer_CN_SXJ&lt;/a&gt;&lt;/p&gt;
&lt;h1&gt;哔咔&lt;/h1&gt;
&lt;p&gt;老字号了，但是广告还是有点多的&lt;/p&gt;
&lt;p&gt;有游戏区，可以在这下galgame&lt;/p&gt;
&lt;p&gt;我第一个galgame就是在哔咔下的&lt;/p&gt;
</content:encoded></item><item><title>双链测试文章A</title><link>https://ayano29.cn/posts/wiki-link-test-a/</link><guid isPermaLink="true">https://ayano29.cn/posts/wiki-link-test-a/</guid><description>这是用来测试双链功能的第一篇文章</description><pubDate>Fri, 28 Nov 2025 00:00:00 GMT</pubDate><content:encoded>&lt;h1&gt;双链测试文章A&lt;/h1&gt;
&lt;p&gt;这是第一篇测试文章，用于演示双链（Wiki Links）功能。&lt;/p&gt;
&lt;h2&gt;什么是双链？&lt;/h2&gt;
&lt;p&gt;双链是一种类似 Obsidian 的笔记连接方式，可以让文章之间互相引用。&lt;/p&gt;
&lt;h2&gt;示例&lt;/h2&gt;
&lt;p&gt;我们可以引用另一篇文章：[[wiki-link-test-b]]&lt;/p&gt;
&lt;p&gt;也可以使用自定义显示文本：[[点击查看文章B|wiki-link-test-b]]&lt;/p&gt;
&lt;p&gt;测试普通链接对比：&lt;a href=&quot;/posts/wiki-link-test-b/&quot;&gt;普通链接到B&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;更多引用&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;查看 [[ai-coding-agents-guide]] 了解 AI 编程工具&lt;/li&gt;
&lt;li&gt;了解 [[keion-girls]] 轻音少女的故事&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;双链的优势&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;快速导航&lt;/strong&gt;：点击即可跳转到相关文章&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;悬浮预览&lt;/strong&gt;：鼠标悬停可以预览文章内容&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;知识图谱&lt;/strong&gt;：自动构建文章之间的关联关系&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;这样就可以构建一个知识网络，让笔记之间形成有机的联系！&lt;/p&gt;
</content:encoded></item><item><title>双链测试文章B</title><link>https://ayano29.cn/posts/wiki-link-test-b/</link><guid isPermaLink="true">https://ayano29.cn/posts/wiki-link-test-b/</guid><description>这是用来测试双链功能的第二篇文章</description><pubDate>Fri, 28 Nov 2025 00:00:00 GMT</pubDate><content:encoded>&lt;h1&gt;双链测试文章B&lt;/h1&gt;
&lt;p&gt;这是第二篇测试文章，与 [[wiki-link-test-a]] 互相连接。&lt;/p&gt;
&lt;h2&gt;回链测试&lt;/h2&gt;
&lt;p&gt;从 [[wiki-link-test-a]] 可以跳转到这里，这里也可以跳回去。&lt;/p&gt;
&lt;h2&gt;双链语法&lt;/h2&gt;
&lt;h3&gt;基本语法&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;[[文章标题]]
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;自定义显示文本&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;[[显示文本|实际链接]]
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;实际应用示例&lt;/h2&gt;
&lt;p&gt;在实际使用中，我们可以这样引用：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;关于 AI 工具，可以参考 [[ai-coding-agents-guide]] 这篇文章&lt;/li&gt;
&lt;li&gt;如果你喜欢动漫，可以看看 [[keion-girls]]&lt;/li&gt;
&lt;li&gt;想要了解起点，请阅读 [[wiki-link-test-a]]&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;为什么使用双链？&lt;/h2&gt;
&lt;p&gt;双链让文章之间形成网络结构，而不是树状结构。这样可以：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;多维度思考&lt;/strong&gt;：一个概念可以从多个角度被引用&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;知识复用&lt;/strong&gt;：避免重复写相同的内容&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;灵感激发&lt;/strong&gt;：通过关联发现新的连接点&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;反向链接&lt;/strong&gt;：自动显示哪些文章引用了当前文章&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;这种方式特别适合构建个人知识库！&lt;/p&gt;
</content:encoded></item><item><title>ai  agent</title><link>https://ayano29.cn/posts/ai-coding-agents-guide/</link><guid isPermaLink="true">https://ayano29.cn/posts/ai-coding-agents-guide/</guid><description>现在去编程还在用窗口一个一个问也太麻烦了，现在的agent已经很发达了，我推荐几个我用的agent工具</description><pubDate>Sun, 16 Nov 2025 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;现在去编程还在用窗口一个一个问也太麻烦了，现在的agent已经很发达了，我推荐几个我用的agent工具&lt;/p&gt;
&lt;h1&gt;cursor  9.4&lt;/h1&gt;
&lt;p&gt;从夯到拉 肯定是夯&lt;/p&gt;
&lt;h2&gt;简介&lt;/h2&gt;
&lt;p&gt;第一个使用的agent 直接是新的idea，让我打开了新世界的大门，综合很强，但是对中国用户太差了，最近还封了续杯工具，很难受
新手我很推荐先用cursor，直接是新的编译器，plan模式还能养成你现准备计划，再做工作的习惯&lt;/p&gt;
&lt;h2&gt;使用&lt;/h2&gt;
&lt;p&gt;&lt;a href=&quot;https://www.bilibili.com/video/BV1WBG9zgECp/?spm_id_from=333.337.search-card.all.click&amp;amp;vd_source=05c30d87ead2eea4eabcc38a5a4f32fd&quot;&gt;史上最强 AI 编程工具免费啦！Cursor 保姆级使用教程！新手友好！看到就是赚到！｜ 集成 MCP ！_哔哩哔哩_bilibili&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;新人教程&lt;/p&gt;
&lt;p&gt;新账号注册送7天试用，先注册一个试试，不过要绑卡，绑卡可以去闲鱼看看&lt;/p&gt;
&lt;p&gt;进入后要将代理开到全局模式，然后建议将http2改为http1，否则大概率打不开
&lt;img src=&quot;https://image29135.oss-cn-wuhan-lr.aliyuncs.com/imag/Pasted%20image%2020251116224420.png&quot; alt=&quot;Pasted image 20251116224420&quot; /&gt;&lt;/p&gt;
&lt;p&gt;cursor打开之后 应该就是这个结构，左边是对话框，问问题，下面有模式切换，做项目要先
&lt;img src=&quot;https://image29135.oss-cn-wuhan-lr.aliyuncs.com/imag/Snipaste_2025-11-16_22-40-01.png&quot; alt=&quot;Snipaste_2025-11-16_22-40-01&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;价格&lt;/h2&gt;
&lt;p&gt;20美刀一个月，最重要的是量太低了
以前可以去&lt;/p&gt;
&lt;h1&gt;augment   9.3&lt;/h1&gt;
&lt;p&gt;这个也是夯完了&lt;/p&gt;
&lt;h2&gt;简介&lt;/h2&gt;
&lt;p&gt;&lt;a href=&quot;https://www.augmentcode.com/&quot;&gt;Augment Code - 真实软件的 AI 编码平台。 --- Augment Code - AI coding platform for real software.&lt;/a&gt;
&lt;img src=&quot;https://image29135.oss-cn-wuhan-lr.aliyuncs.com/imag/Pasted%20image%2020251116225520.png&quot; alt=&quot;Pasted image 20251116225520&quot; /&gt;
这个我用的是vscode插件版&lt;/p&gt;
&lt;h2&gt;使用&lt;/h2&gt;
&lt;p&gt;这个auto 一定要开一下试试，真的很爽，全都不要你按，他全搞好了 体验绝佳
&lt;img src=&quot;https://image29135.oss-cn-wuhan-lr.aliyuncs.com/imag/Pasted%20image%2020251116225808.png&quot; alt=&quot;Pasted image 20251116225808&quot; /&gt;&lt;/p&gt;
&lt;h1&gt;windsurf    6&lt;/h1&gt;
&lt;p&gt;拉完了&lt;/p&gt;
&lt;p&gt;用的很难受不知道是不是我的问题
不过现在续杯应该很好找，价格应该不贵&lt;/p&gt;
&lt;h1&gt;codex    8&lt;/h1&gt;
&lt;h2&gt;简介&lt;/h2&gt;
&lt;p&gt;chatgpt的工具，什么都好，就是实在是太慢了，价格很便宜，可以去闲鱼拼车&lt;/p&gt;
&lt;h2&gt;使用&lt;/h2&gt;
&lt;p&gt;我用的插件版，总体使用大差不差吧&lt;/p&gt;
&lt;h2&gt;价格&lt;/h2&gt;
&lt;p&gt;官方价格忘了，拼车20左右一月
我推荐直接拼车，还能白嫖chatgpt5的对话框，这个能直接生成word文档还是很实用的&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://image29135.oss-cn-wuhan-lr.aliyuncs.com/imag/Pasted%20image%2020251116230101.png&quot; alt=&quot;Pasted image 20251116230101&quot; /&gt;&lt;/p&gt;
&lt;h1&gt;ClaudeCode&lt;/h1&gt;
&lt;h2&gt;简介&lt;/h2&gt;
&lt;p&gt;Claude 写代码的都明白，遥遥领先，作为本家推出的agent，肯定有其独特点，不过我现在一直有bug，就先不评价了&lt;/p&gt;
&lt;h1&gt;trae&lt;/h1&gt;
&lt;p&gt;唯一的国产，但是没有Claude，建议用国际版吧，算了，还是不建议用这个，新手到可以尝尝鲜
&lt;img src=&quot;https://image29135.oss-cn-wuhan-lr.aliyuncs.com/imag/Pasted%20image%2020251116225311.png&quot; alt=&quot;Pasted image 20251116225311&quot; /&gt;
&lt;a href=&quot;https://www.trae.cn/&quot;&gt;TRAE - The Real AI Engineer | TRAE - The Real AI Engineer&lt;/a&gt;&lt;/p&gt;
</content:encoded></item><item><title>AI 视频笔记生成器</title><link>https://ayano29.cn/posts/programming/bilinote/</link><guid isPermaLink="true">https://ayano29.cn/posts/programming/bilinote/</guid><description>基于 AI 的本地视频笔记自动生成工具，支持语音转录、智能截图、结构化笔记生成，完美集成 Obsidian</description><pubDate>Sun, 16 Nov 2025 00:00:00 GMT</pubDate><content:encoded>&lt;h2&gt;📖 项目简介&lt;/h2&gt;
&lt;p&gt;本地视频笔记生成工具，能够自动将视频转换为结构化的 Markdown 笔记。&lt;/p&gt;
&lt;p&gt;为什么不用bilinote  我的总是会报错，很烦，其他的像BiliGPT videoseek 会员都超级贵，你们一个用免费模型的怎么都这么贵，100多一个月，永久会员5000多，真吓人，不如我自己搞一个&lt;/p&gt;
&lt;p&gt;有截图，图文结合。就是为的这个图才搞的这个项目，最后只能说是马马虎虎吧
最后的结果大概是这样，勉强能用
&lt;img src=&quot;https://image29135.oss-cn-wuhan-lr.aliyuncs.com/imag/Pasted%20image%2020251116222120.png&quot; alt=&quot;Pasted image 20251116222120&quot; /&gt;&lt;/p&gt;
&lt;h3&gt;核心功能&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;🎙️ &lt;strong&gt;自动转录&lt;/strong&gt;：使用 Whisper 将视频语音转为带时间戳的文字&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;📸 &lt;strong&gt;智能截图&lt;/strong&gt;：基于场景检测自动提取关键帧&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;🧠 &lt;strong&gt;AI 分析&lt;/strong&gt;：使用 Gemini 提取核心要点、生成章节目录
gemin最便宜了，建议用这个智谱的那个也不错&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;📝 &lt;strong&gt;生成笔记&lt;/strong&gt;：输出结构化 Markdown，完美兼容 Obsidian&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;pre&gt;&lt;code&gt;graph LR
    A[📹 视频文件] --&amp;gt; B[🎵 提取音频&amp;lt;br/&amp;gt;FFmpeg]
    B --&amp;gt; C[🎙️ 语音转录&amp;lt;br/&amp;gt;Whisper]
    A --&amp;gt; D[📸 提取关键帧&amp;lt;br/&amp;gt;OpenCV]
    C --&amp;gt; E[🧠 AI 分析&amp;lt;br/&amp;gt;Gemini]
    D --&amp;gt; E
    E --&amp;gt; F[📝 生成笔记&amp;lt;br/&amp;gt;Markdown]
    F --&amp;gt; G[📚 Obsidian]
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;技术亮点&lt;/h3&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;特点&lt;/th&gt;
&lt;th&gt;说明&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;🏠 &lt;strong&gt;本地处理&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;视频文件在本地处理，保护隐私&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;⚡ &lt;strong&gt;速度快&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;40 分钟视频，3-5 分钟处理完成&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;📚 &lt;strong&gt;质量高&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;自动生成多级标题、配图、思维导图&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;🎨 &lt;strong&gt;完美集成&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;生成的笔记直接导入 Obsidian&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h2&gt;🛠️ 技术架构&lt;/h2&gt;
&lt;h3&gt;技术栈&lt;/h3&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;模块&lt;/th&gt;
&lt;th&gt;技术&lt;/th&gt;
&lt;th&gt;说明&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;语音识别&lt;/td&gt;
&lt;td&gt;Faster-Whisper&lt;/td&gt;
&lt;td&gt;OpenAI Whisper 的优化版本&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;视频处理&lt;/td&gt;
&lt;td&gt;OpenCV + FFmpeg&lt;/td&gt;
&lt;td&gt;提取音频、关键帧截图&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;AI 分析&lt;/td&gt;
&lt;td&gt;Google Gemini 2.5 Pro&lt;/td&gt;
&lt;td&gt;多模态大语言模型&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;后端框架&lt;/td&gt;
&lt;td&gt;FastAPI&lt;/td&gt;
&lt;td&gt;现代化的 Python Web 框架&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;前端界面&lt;/td&gt;
&lt;td&gt;HTML + TailwindCSS&lt;/td&gt;
&lt;td&gt;简洁的 Web 界面&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3&gt;处理流程&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;📹 视频文件 → 🎵 提取音频 → 🎙️ 语音转录
 ↓            📸 提取关键帧                ↓
 🧠 AI 分析                ↓            📝 生成笔记 → 📚 Obsidian
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;💡 核心技术实现&lt;/h2&gt;
&lt;h3&gt;1. 智能截图提取&lt;/h3&gt;
&lt;p&gt;使用&lt;strong&gt;场景检测算法&lt;/strong&gt;，而不是简单的均匀采样：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;def extract_keyframes(video_path, num_frames=40):    &quot;&quot;&quot;基于场景变化检测提取关键帧&quot;&quot;&quot;    cap = cv2.VideoCapture(video_path)    prev_hist = None    keyframes = []
    while cap.isOpened():        ret, frame = cap.read()        if not ret:            break
        # 计算直方图        hist = cv2.calcHist([frame], [0, 1, 2], None,                           [8, 8, 8], [0, 256, 0, 256, 0, 256])        hist = cv2.normalize(hist, hist).flatten()
        # 比较相似度        if prev_hist is not None:            similarity = cv2.compareHist(prev_hist, hist,                                        cv2.HISTCMP_CORREL)            # 场景变化阈值            if similarity &amp;lt; 0.85:                keyframes.append(frame)
        prev_hist = hist
    return keyframes
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;strong&gt;优势&lt;/strong&gt;：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;✅ 自动识别画面切换点&lt;/li&gt;
&lt;li&gt;✅ 避免重复截图&lt;/li&gt;
&lt;li&gt;✅ 确保关键内容不遗漏&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;2. 解决 OpenCV 中文路径问题&lt;/h3&gt;
&lt;p&gt;Windows 下 &lt;code&gt;cv2.imwrite()&lt;/code&gt; 无法处理中文路径，使用 &lt;code&gt;cv2.imencode()&lt;/code&gt; 方案：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;def save_frame_with_chinese_path(frame, filepath):    &quot;&quot;&quot;支持中文路径的图片保存&quot;&quot;&quot;    success, encoded_image = cv2.imencode(&apos;.png&apos;, frame)    if not success:        raise Exception(&quot;图像编码失败&quot;)
    with open(filepath, &apos;wb&apos;) as f:        f.write(encoded_image.tobytes())
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;3. 优化 AI Prompt 避免超时&lt;/h3&gt;
&lt;p&gt;Gemini API 的超时时间为 120 秒，通过优化 Prompt 提升性能：&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;优化前&lt;/strong&gt;：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;📄 Prompt 长度：300+ 行&lt;/li&gt;
&lt;li&gt;⏱️ 处理时间：150 秒（超时）&lt;/li&gt;
&lt;li&gt;❌ 成功率：60%&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;优化后&lt;/strong&gt;：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;📄 Prompt 长度：100 行&lt;/li&gt;
&lt;li&gt;⏱️ 处理时间：40 秒&lt;/li&gt;
&lt;li&gt;✅ 成功率：99%&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;🔗 项目链接&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;GitHub&lt;/strong&gt;：&lt;a href=&quot;https://github.com/1685901916/local-video-summary&quot;&gt;本地视频总结工具 - 用 AI 自动生成学习笔记 &lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;🙏 致谢&lt;/h2&gt;
&lt;p&gt;感谢以下开源项目：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/openai/whisper&quot;&gt;OpenAI Whisper&lt;/a&gt; - 语音识别模型&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/guillaumekln/faster-whisper&quot;&gt;Faster-Whisper&lt;/a&gt; - Whisper 优化实现&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://ai.google.dev/&quot;&gt;Google Gemini&lt;/a&gt; - 多模态 AI  模型&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://fastapi.tiangolo.com/&quot;&gt;FastAPI&lt;/a&gt; - Python Web 框架&lt;/li&gt;
&lt;/ul&gt;
</content:encoded></item><item><title>下载已购小鹅通视频</title><link>https://ayano29.cn/posts/programming/xiaoe-downloader/</link><guid isPermaLink="true">https://ayano29.cn/posts/programming/xiaoe-downloader/</guid><description>基于Python实现的小鹅通M3U8加密视频下载工具，支持AES-128解密、6线程并行下载、自动FFmpeg合并。实战验证28节课程100%成功率。</description><pubDate>Sat, 01 Nov 2025 00:00:00 GMT</pubDate><content:encoded>&lt;h2&gt;📖 前言&lt;/h2&gt;
&lt;p&gt;最近购买了小鹅通平台上的付费课程,想下载到本地方便用BiliNote总结视频。但发现小鹅通使用了M3U8+AES-128加密技术,普通的视频下载工具完全无法使用。&lt;/p&gt;
&lt;p&gt;基本上是AI做的,给大家个参考吧。网上的软件大都要收费,CSDN上求软件的基本上都是课程的10%收费,然后设置个上限让你付款。&lt;/p&gt;
&lt;p&gt;🔗 &lt;strong&gt;参考方案&lt;/strong&gt;: &lt;a href=&quot;https://1kcode.cn/%E5%A6%82%E4%BD%95%E5%85%8D%E8%B4%B9%E4%B8%8B%E8%BD%BD%E5%B0%8F%E9%B9%85%E9%80%9A%E4%BB%98%E8%B4%B9%E8%A7%86%E9%A2%91/&quot;&gt;🧠 技术干货｜如何免费下载小鹅通视频？（纯开源方案,无需付费软件）&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;项目成果&lt;/strong&gt;：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;✅ 支持小鹅通AES-128加密视频&lt;/li&gt;
&lt;li&gt;✅ 6线程并行下载,速度快3-6倍&lt;/li&gt;
&lt;li&gt;✅ 自动FFmpeg处理,生成标准MP4格式&lt;/li&gt;
&lt;li&gt;✅ 完整的错误恢复机制&lt;/li&gt;
&lt;li&gt;✅ 实战验证：28节课程,100%成功率&lt;/li&gt;
&lt;/ul&gt;
&lt;hr /&gt;
&lt;h2&gt;🎯 小鹅通视频保护机制&lt;/h2&gt;
&lt;h3&gt;技术分析&lt;/h3&gt;
&lt;p&gt;小鹅通平台采用了多重视频保护技术：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;M3U8分段技术&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;将完整视频切分成数百个小片段（.ts文件）&lt;/li&gt;
&lt;li&gt;每个片段通常10秒左右&lt;/li&gt;
&lt;li&gt;通过.m3u8索引文件记录所有片段&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;AES-128加密&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;每个视频片段都经过AES-128加密&lt;/li&gt;
&lt;li&gt;需要密钥（key）才能解密&lt;/li&gt;
&lt;li&gt;每个片段使用独立的IV（初始化向量）&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;动态链接&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;M3U8链接有时效性&lt;/li&gt;
&lt;li&gt;需要登录验证&lt;/li&gt;
&lt;li&gt;防盗链保护&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;hr /&gt;
&lt;h2&gt;💡 解决方案&lt;/h2&gt;
&lt;h3&gt;整体思路&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;1. 获取M3U8链接（浏览器开发者工具）
     ↓
2. 下载M3U8播放列表
     ↓
3. 解析加密信息（密钥URL、IV）
     ↓
4. 下载加密密钥
     ↓
5. 并行下载所有视频片段（6线程）
     ↓
6. 逐个解密片段（AES-128 CBC模式）
     ↓
7. FFmpeg合并为标准MP4
     ↓
8. 完成！
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;技术栈&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Python 3.8+&lt;/strong&gt; - 主要开发语言&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;requests&lt;/strong&gt; - HTTP请求处理&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;pycryptodome&lt;/strong&gt; - AES加密解密&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;concurrent.futures&lt;/strong&gt; - 并发下载&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;FFmpeg&lt;/strong&gt; - 视频格式转换&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;subprocess&lt;/strong&gt; - 调用FFmpeg&lt;/li&gt;
&lt;/ul&gt;
&lt;hr /&gt;
&lt;h2&gt;🔧 核心实现&lt;/h2&gt;
&lt;h3&gt;1. 获取M3U8链接&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;方法&lt;/strong&gt;：使用浏览器开发者工具&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;1. 打开课程视频页面
2. 按F12打开开发者工具
3. 切换到Network（网络）标签
4. 筛选器输入：m3u8
5. 播放视频,会看到.m3u8文件请求
6. 右键复制链接地址
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;img src=&quot;https://image29135.oss-cn-wuhan-lr.aliyuncs.com/imag/20251101230033.png&quot; alt=&quot;获取M3U8链接&quot; /&gt;&lt;/p&gt;
&lt;h3&gt;2. 解析M3U8文件&lt;/h3&gt;
&lt;p&gt;小鹅通的M3U8文件格式：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;#EXTM3U
#EXT-X-VERSION:3
#EXT-X-TARGETDURATION:10
#EXT-X-KEY:METHOD=AES-128,URI=&quot;https://.../key.key&quot;,IV=0x00000000000000000000000000000000
#EXTINF:10.0,
segment_0001.ts
#EXTINF:10.0,
segment_0002.ts
...
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;strong&gt;解析代码&lt;/strong&gt;：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;import re
import binascii
from urllib.parse import urljoin

def parse_m3u8(content, base_url):
    &quot;&quot;&quot;解析小鹅通M3U8文件&quot;&quot;&quot;
    segments = []
    key_url = None
    iv = None
    
    for line in content.split(&apos;\n&apos;):
        line = line.strip()
        
        # 提取加密信息
        if line.startswith(&apos;#EXT-X-KEY:&apos;):
            if &apos;METHOD=AES-128&apos; in line:
                # 提取密钥URL
                uri_match = re.search(r&apos;URI=&quot;([^&quot;]+)&quot;&apos;, line)
                if uri_match:
                    key_url = urljoin(base_url, uri_match.group(1))
                
                # 提取IV
                iv_match = re.search(r&apos;IV=0x([0-9A-Fa-f]+)&apos;, line)
                if iv_match:
                    iv = binascii.unhexlify(iv_match.group(1))
        
        # 提取片段URL
        elif line and not line.startswith(&apos;#&apos;):
            segment_url = urljoin(base_url, line)
            segments.append(segment_url)
    
    return segments, key_url, iv
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;3. AES-128解密&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;关键点&lt;/strong&gt;：小鹅通的IV生成规则&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;from Crypto.Cipher import AES
from Crypto.Util.Padding import unpad

def decrypt_segment(encrypted_data, key, base_iv, segment_index):
    &quot;&quot;&quot;
    解密小鹅通视频片段
    
    重要：小鹅通每个片段的IV不同！
    规则：IV的最后4字节替换为片段索引
    &quot;&quot;&quot;
    # 生成该片段的IV
    segment_iv = base_iv[:-4] + segment_index.to_bytes(4, byteorder=&apos;big&apos;)
    
    # AES CBC模式解密
    cipher = AES.new(key, AES.MODE_CBC, segment_iv)
    decrypted_data = cipher.decrypt(encrypted_data)
    
    # 去除PKCS7填充
    try:
        decrypted_data = unpad(decrypted_data, AES.block_size)
    except:
        # 某些片段可能不需要去填充
        pass
    
    return decrypted_data
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;strong&gt;踩坑记录&lt;/strong&gt;：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;❌ 错误：直接使用M3U8中的固定IV → 解密失败,视频花屏&lt;/li&gt;
&lt;li&gt;✅ 正确：为每个片段生成独立IV → 解密成功&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;4. 并行下载加速&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;from concurrent.futures import ThreadPoolExecutor, as_completed

def download_segments_parallel(segments, key, iv, max_workers=6):
    &quot;&quot;&quot;6线程并发下载&quot;&quot;&quot;
    successful_segments = []
    
    with ThreadPoolExecutor(max_workers=max_workers) as executor:
        # 提交所有下载任务
        futures = {
            executor.submit(download_and_decrypt_segment, 
                          url, key, iv, index): index
            for index, url in enumerate(segments)
        }
        
        # 收集结果
        for future in as_completed(futures):
            index = futures[future]
            try:
                filepath = future.result()
                successful_segments.append((index, filepath))
                print(f&quot;进度: {len(successful_segments)}/{len(segments)}&quot;)
            except Exception as e:
                print(f&quot;片段{index}下载失败: {e}&quot;)
    
    # 按索引排序
    successful_segments.sort(key=lambda x: x[0])
    return successful_segments
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;strong&gt;性能对比&lt;/strong&gt;：&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;方法&lt;/th&gt;
&lt;th&gt;40分钟视频耗时&lt;/th&gt;
&lt;th&gt;速度提升&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;串行下载&lt;/td&gt;
&lt;td&gt;~20分钟&lt;/td&gt;
&lt;td&gt;基准&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;3线程&lt;/td&gt;
&lt;td&gt;~8分钟&lt;/td&gt;
&lt;td&gt;2.5倍&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;6线程（推荐）&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;~3.5分钟&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;5.7倍&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;10线程&lt;/td&gt;
&lt;td&gt;~3分钟&lt;/td&gt;
&lt;td&gt;6.7倍（可能被限速）&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3&gt;5. FFmpeg合并&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;import subprocess

def merge_with_ffmpeg(segment_files, output_file):
    &quot;&quot;&quot;使用FFmpeg合并为标准MP4&quot;&quot;&quot;
    
    # 创建文件列表
    with open(&apos;filelist.txt&apos;, &apos;w&apos;, encoding=&apos;utf-8&apos;) as f:
        for filepath in segment_files:
            f.write(f&quot;file &apos;{filepath}&apos;\n&quot;)
    
    # FFmpeg命令
    cmd = [
        &apos;ffmpeg&apos;,
        &apos;-f&apos;, &apos;concat&apos;,           # 连接模式
        &apos;-safe&apos;, &apos;0&apos;,             # 允许相对路径
        &apos;-i&apos;, &apos;filelist.txt&apos;,     # 输入列表
        &apos;-c:v&apos;, &apos;libx264&apos;,        # H.264视频编码
        &apos;-c:a&apos;, &apos;aac&apos;,            # AAC音频编码
        &apos;-movflags&apos;, &apos;+faststart&apos;,# 优化流媒体播放
        &apos;-y&apos;,                     # 覆盖输出
        output_file
    ]
    
    subprocess.run(cmd, timeout=600)
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;strong&gt;输出效果&lt;/strong&gt;：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;✅ 标准MP4格式&lt;/li&gt;
&lt;li&gt;✅ 兼容所有播放器&lt;/li&gt;
&lt;li&gt;✅ 支持快进快退&lt;/li&gt;
&lt;li&gt;✅ 音画同步完美&lt;/li&gt;
&lt;/ul&gt;
&lt;hr /&gt;
&lt;h2&gt;🎯 核心代码&lt;/h2&gt;
&lt;h3&gt;完整的下载器类&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;import requests
import os
import time
import shutil
from concurrent.futures import ThreadPoolExecutor, as_completed
from Crypto.Cipher import AES
from Crypto.Util.Padding import unpad
import subprocess
import binascii

class XiaoeM3U8Downloader:
    &quot;&quot;&quot;小鹅通M3U8视频下载器&quot;&quot;&quot;
    
    def __init__(self, output_dir=&quot;downloads&quot;):
        self.output_dir = output_dir
        self.ffmpeg_path = None
        self.session = requests.Session()
        
        # 设置请求头（模拟浏览器）
        self.session.headers.update({
            &apos;User-Agent&apos;: &apos;Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36&apos;,
            &apos;Referer&apos;: &apos;https://xiaoe-tech.com/&apos;,
            &apos;Accept&apos;: &apos;*/*&apos;,
            &apos;Accept-Language&apos;: &apos;zh-CN,zh;q=0.9&apos;,
            &apos;Connection&apos;: &apos;keep-alive&apos;
        })
    
    def download_course(self, course):
        &quot;&quot;&quot;下载单个课程&quot;&quot;&quot;
        print(f&quot;\n开始下载: {course[&apos;title&apos;]}&quot;)
        print(&quot;=&quot; * 60)
        
        # 1. 下载M3U8
        m3u8_content = self.session.get(course[&apos;m3u8_url&apos;]).text
        
        # 2. 解析
        base_url = &apos;/&apos;.join(course[&apos;m3u8_url&apos;].split(&apos;/&apos;)[:-1]) + &apos;/&apos;
        segments, key_url, iv = self.parse_m3u8(m3u8_content, base_url)
        print(f&quot;找到 {len(segments)} 个视频片段&quot;)
        
        # 3. 获取密钥
        key = self.session.get(key_url).content
        print(f&quot;密钥长度: {len(key)} 字节&quot;)
        
        # 4. 并行下载
        temp_dir = f&quot;temp_{course[&apos;chapter&apos;]}&quot;
        os.makedirs(temp_dir, exist_ok=True)
        
        segment_files = self.download_segments_parallel(
            segments, key, iv, temp_dir
        )
        
        # 5. 合并
        output_file = f&quot;{course[&apos;chapter&apos;]:02d}_{course[&apos;title&apos;]}.mp4&quot;
        self.merge_with_ffmpeg(segment_files, output_file)
        
        # 6. 清理
        shutil.rmtree(temp_dir)
        
        print(f&quot;✅ 课程下载完成: {course[&apos;title&apos;]}&quot;)
        return True
    
    def parse_m3u8(self, content, base_url):
        &quot;&quot;&quot;解析M3U8文件&quot;&quot;&quot;
        segments = []
        key_url = None
        iv = None
        
        for line in content.split(&apos;\n&apos;):
            line = line.strip()
            
            if &apos;#EXT-X-KEY:&apos; in line and &apos;AES-128&apos; in line:
                # 提取密钥URL
                start = line.find(&apos;URI=&quot;&apos;) + 5
                end = line.find(&apos;&quot;&apos;, start)
                key_url = urljoin(base_url, line[start:end])
                
                # 提取IV
                iv_start = line.find(&apos;IV=0x&apos;)
                if iv_start != -1:
                    iv_hex = line[iv_start + 5:iv_start + 37]
                    iv = binascii.unhexlify(iv_hex)
            
            elif line and not line.startswith(&apos;#&apos;):
                segments.append(urljoin(base_url, line))
        
        return segments, key_url, iv
    
    def download_and_decrypt_segment(self, url, key, base_iv, index, temp_dir):
        &quot;&quot;&quot;下载并解密单个片段&quot;&quot;&quot;
        # 下载
        response = self.session.get(url, timeout=30)
        encrypted_data = response.content
        
        # 解密（关键：生成片段专属IV）
        segment_iv = base_iv[:-4] + index.to_bytes(4, byteorder=&apos;big&apos;)
        cipher = AES.new(key, AES.MODE_CBC, segment_iv)
        decrypted_data = cipher.decrypt(encrypted_data)
        
        # 保存
        filepath = os.path.join(temp_dir, f&quot;segment_{index:04d}.ts&quot;)
        with open(filepath, &apos;wb&apos;) as f:
            f.write(decrypted_data)
        
        return filepath
    
    def download_segments_parallel(self, segments, key, iv, temp_dir, max_workers=6):
        &quot;&quot;&quot;并行下载所有片段&quot;&quot;&quot;
        segment_files = []
        
        with ThreadPoolExecutor(max_workers=max_workers) as executor:
            futures = {
                executor.submit(self.download_and_decrypt_segment,
                              url, key, iv, i, temp_dir): i
                for i, url in enumerate(segments)
            }
            
            for future in as_completed(futures):
                filepath = future.result()
                segment_files.append(filepath)
                print(f&quot;进度: {len(segment_files)}/{len(segments)}&quot;)
        
        return sorted(segment_files)
    
    def merge_with_ffmpeg(self, segment_files, output_file):
        &quot;&quot;&quot;FFmpeg合并&quot;&quot;&quot;
        with open(&apos;filelist.txt&apos;, &apos;w&apos;) as f:
            for filepath in segment_files:
                f.write(f&quot;file &apos;{filepath}&apos;\n&quot;)
        
        cmd = [
            &apos;ffmpeg&apos;, &apos;-f&apos;, &apos;concat&apos;, &apos;-safe&apos;, &apos;0&apos;,
            &apos;-i&apos;, &apos;filelist.txt&apos;,
            &apos;-c:v&apos;, &apos;libx264&apos;, &apos;-c:a&apos;, &apos;aac&apos;,
            &apos;-movflags&apos;, &apos;+faststart&apos;,
            &apos;-y&apos;, output_file
        ]
        
        subprocess.run(cmd)
        os.remove(&apos;filelist.txt&apos;)
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;使用示例&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;# 创建下载器
downloader = XiaoeM3U8Downloader(output_dir=&quot;downloads&quot;)

# 下载单个课程
course = {
    &apos;chapter&apos;: 1,
    &apos;title&apos;: &apos;01课-初识软件&apos;,
    &apos;m3u8_url&apos;: &apos;https://encrypt-k-vod.xet.tech/.../v.m3u8?sign=...&apos;
}

downloader.download_course(course)
&lt;/code&gt;&lt;/pre&gt;
&lt;hr /&gt;
&lt;h2&gt;⚠️ 重要注意事项&lt;/h2&gt;
&lt;h3&gt;法律合规&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;⚠️ 严格遵守以下规则&lt;/strong&gt;：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;✅ 允许的使用&lt;/strong&gt;：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;下载自己已购买的课程&lt;/li&gt;
&lt;li&gt;个人学习和备份&lt;/li&gt;
&lt;li&gt;离线学习使用&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;❌ 禁止的行为&lt;/strong&gt;：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;下载未购买的课程（侵权）&lt;/li&gt;
&lt;li&gt;商业使用或盈利&lt;/li&gt;
&lt;li&gt;二次分发或转售&lt;/li&gt;
&lt;li&gt;上传到公共平台分享&lt;/li&gt;
&lt;li&gt;破解他人账号下载&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;📜 免责声明&lt;/strong&gt;：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;本工具仅供技术学习和研究使用。
用户应遵守小鹅通平台服务条款。
下载内容仅限个人已购买的课程。
不得用于任何侵权或违法行为。
使用本工具造成的任何法律后果由用户自行承担。
&lt;/code&gt;&lt;/pre&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;hr /&gt;
&lt;h2&gt;🚀 后续优化方向&lt;/h2&gt;
&lt;h3&gt;功能扩展&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;GUI界面&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;使用PyQt5或Tkinter&lt;/li&gt;
&lt;li&gt;拖拽添加课程&lt;/li&gt;
&lt;li&gt;可视化进度显示&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;自动化增强&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;浏览器插件自动捕获M3U8&lt;/li&gt;
&lt;li&gt;Selenium自动登录和提取&lt;/li&gt;
&lt;li&gt;批量课程自动发现&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;更多平台支持&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;网易云课堂&lt;/li&gt;
&lt;li&gt;腾讯课堂&lt;/li&gt;
&lt;li&gt;B站付费课程&lt;/li&gt;
&lt;li&gt;其他M3U8平台&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;性能优化&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;断点续传&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;记录下载进度&lt;/li&gt;
&lt;li&gt;支持中断后继续&lt;/li&gt;
&lt;li&gt;智能跳过已下载片段&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;智能重试&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;根据错误类型调整策略&lt;/li&gt;
&lt;li&gt;自动降低并发数&lt;/li&gt;
&lt;li&gt;动态调整超时时间&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;缓存机制&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;缓存M3U8内容&lt;/li&gt;
&lt;li&gt;缓存解密密钥&lt;/li&gt;
&lt;li&gt;减少重复请求&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;hr /&gt;
&lt;h2&gt;📦 项目文件&lt;/h2&gt;
&lt;p&gt;完整项目包含以下文件：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;xiaoe-downloader/
├── ultimate_m3u8_downloader.py    # 核心脚本（500行）
├── xiaoe_course_data.json         # 课程数据示例
├── requirements.txt                # Python依赖
├── 一键下载全部课程.bat            # Windows启动器
├── 测试单个课程.bat                # 测试脚本
├── 安装依赖.bat                    # 依赖安装
└── docs/                          # 完整文档
    ├── README.md
    ├── 快速参考卡.md
    ├── 使用指南.md
    └── 系统架构图.md
&lt;/code&gt;&lt;/pre&gt;
&lt;hr /&gt;
&lt;h2&gt;📚 参考资料&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://www.xiaoe-tech.com/&quot;&gt;小鹅通官网&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://datatracker.ietf.org/doc/html/rfc8216&quot;&gt;M3U8协议规范 RFC 8216&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://en.wikipedia.org/wiki/Advanced_Encryption_Standard&quot;&gt;AES加密标准&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://ffmpeg.org/documentation.html&quot;&gt;FFmpeg官方文档&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://docs.python.org/3/library/concurrent.futures.html&quot;&gt;Python并发编程&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;hr /&gt;
&lt;p&gt;&lt;strong&gt;发布时间&lt;/strong&gt;: 2025年11月1日&lt;br /&gt;
&lt;strong&gt;分类&lt;/strong&gt;: 作品集&lt;br /&gt;
&lt;strong&gt;标签&lt;/strong&gt;: 程序系、Python、小鹅通、视频下载、技术实战&lt;/p&gt;
&lt;hr /&gt;
&lt;p&gt;&lt;strong&gt;如果这篇文章对你有帮助,欢迎：&lt;/strong&gt;&lt;br /&gt;
👍 点赞支持 | 💬 评论交流 | ⭐ 收藏备用 | 🔗 分享给朋友&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;声明&lt;/strong&gt;: 本文仅供技术学习交流,请遵守法律法规和平台规则&lt;/p&gt;
</content:encoded></item><item><title>轻音少女</title><link>https://ayano29.cn/posts/keion-girls/</link><guid isPermaLink="true">https://ayano29.cn/posts/keion-girls/</guid><description>京阿尼经典校园日常番，讲述轻音部女孩们的青春故事</description><pubDate>Thu, 30 Oct 2025 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;&lt;img src=&quot;https://image29135.oss-cn-wuhan-lr.aliyuncs.com/imag/Pasted%20image%2020250829221155.png&quot; alt=&quot;轻音少女封面&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://image29135.oss-cn-wuhan-lr.aliyuncs.com/imag/Pasted%20image%2020250829220821.png&quot; alt=&quot;轻音少女剧照&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;制作&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;制作公司&lt;/strong&gt;：京都动画（京阿尼）&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;评分&lt;/strong&gt;：9.4/10&lt;/p&gt;
&lt;h2&gt;角色&lt;/h2&gt;
&lt;h3&gt;Mio（秋山澪）&lt;/h3&gt;
&lt;p&gt;蓝白碗 - 性格内向但认真负责的贝斯手，是乐队的精神支柱之一。&lt;/p&gt;
&lt;h3&gt;妹妹（平沽忧）&lt;/h3&gt;
&lt;p&gt;全能大王 - 主角平沽唯的妹妹，学习和家务都很擅长。&lt;/p&gt;
&lt;h2&gt;总评与感想&lt;/h2&gt;
&lt;p&gt;《轻音少女》是京都动画制作的一部经典校园日常动画，以轻音乐部为舞台，讲述了五位女高中生的青春故事。作品以温馨治愈的氛围、精致的作画和动人的音乐著称，是京阿尼的代表作之一。&lt;/p&gt;
&lt;p&gt;动画不仅展现了少女们在音乐方面的成长，更描绘了她们之间深厚的友情和青春时光的美好。每一集都充满了欢笑与感动，让观众感受到青春的珍贵。&lt;/p&gt;
&lt;h2&gt;周边&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;https://image29135.oss-cn-wuhan-lr.aliyuncs.com/imag/Pasted%20image%2020250829220929.png&quot; alt=&quot;周边商品&quot; /&gt;&lt;/p&gt;
</content:encoded></item><item><title>个人博客系统</title><link>https://ayano29.cn/posts/programming/blog-system/</link><guid isPermaLink="true">https://ayano29.cn/posts/programming/blog-system/</guid><description>基于 Astro 框架开发的个人博客系统，支持 Markdown、代码高亮、响应式设计</description><pubDate>Sat, 10 Feb 2024 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;这是一个基于 Astro 框架开发的个人博客系统。&lt;/p&gt;
&lt;h2&gt;技术栈&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Astro&lt;/li&gt;
&lt;li&gt;TypeScript&lt;/li&gt;
&lt;li&gt;Tailwind CSS&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;功能特点&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;响应式设计&lt;/li&gt;
&lt;li&gt;支持暗色模式&lt;/li&gt;
&lt;li&gt;Markdown 支持&lt;/li&gt;
&lt;/ul&gt;
</content:encoded></item><item><title>示例插画作品</title><link>https://ayano29.cn/posts/normal/illustration-work/</link><guid isPermaLink="true">https://ayano29.cn/posts/normal/illustration-work/</guid><description>这是一个示例插画作品，展示风景插画的创作过程和技巧</description><pubDate>Mon, 15 Jan 2024 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;这是一个示例插画作品的内容。&lt;/p&gt;
&lt;p&gt;你可以在这里添加作品的详细介绍、创作过程、使用的工具等信息。&lt;/p&gt;
</content:encoded></item></channel></rss>