├── README.md ├── HOW-TO-USE.md ├── Changelog.md └── LICENSE /README.md: -------------------------------------------------------------------------------- 1 | # Miao Project 2 | 3 | ![Banner](https://image.paladinfeng.app/2025/12/10ce89413cd3f5f3acd60cf6edb458dc.png) 4 | 5 | > 本仓库为收集 Miao Project 在使用过程中遇到的问题 6 | 7 | ### 注意:请不要因为本项目购入 Apple TV 8 | 9 | - **[使用说明](https://github.com/Paladinfeng/MiaoProject/blob/master/HOW-TO-USE.md)** 10 | - **[激活说明](https://paladinfeng.notion.site/140462eaa3134ff68909102cb2b37e32)** 11 | 12 | ### Contributor 13 | 14 | - Top Shelf Designed By **Allen** 15 | 16 | ### 目前主要功能已经开发完成 17 | 18 | - 首页推荐 19 | - 热门(这块儿的 API 是从云视听那边抓来的,顺序可能和手机版不一样) 20 | - 排行榜 21 | - 二维码登录(API 来自云视听,扫码登录的时候会有提示) 22 | - 动态 23 | - 搜索 24 | - 历史记录 25 | - 收藏 26 | - 番剧 / 追番 27 | - 4K / 8K 视频播放 28 | - 原生播放器 29 | - 通用设置(全局倍速播放,弹幕开关等) 30 | - 视频面板 / 向下轻扫唤起视频详情 31 | - Dash / HLS 格式视频播放 32 | - 根据网络带宽自动选择分辨率 33 | - 点赞 / 投币 / 收藏 34 | - 关注 / 关注列表 35 | - 外挂字幕 36 | - 根据权重屏蔽弹幕 37 | - 直播 / 弹幕 / 醒目留言 38 | - 支持杜比视界(Dolby Vision 8.4 + HLG 或者 Dolby Vision 5 + PQ) 39 | - 支持杜比全景声(Dolby Digital Plus with Dolby Atmos) 40 | - 匹配动态范围和帧率 41 | - 多账户系统,最多添加 5 个 Profile 42 | - iCloud 同步 43 | 44 | ### 项目预览 45 | 46 | ![Screen Shot](https://image.paladinfeng.app/2025/12/e3095b25c63ce9d70ea136aa1de2105b.png) 47 | ![Screen Shot](https://image.paladinfeng.app/2025/12/ebd17df0953e520ebef6323ac8ab8ef4.png) 48 | ![Screen Shot](https://image.paladinfeng.app/2025/12/8ffc9cd3f8b463252e64697dcc73559e.png) 49 | ![Screen Shot](https://image.paladinfeng.app/2025/12/2e1d720a7025fb6166a2917843169131.png) 50 | ![Screen Shot](https://image.paladinfeng.app/2025/12/bfc859efc56da8046051fed82635f3b8.png) 51 | ![Screen Shot](https://image.paladinfeng.app/2025/12/9aefe49234028d2fca5708b56d6e27d6.png) 52 | ![Screen Shot](https://image.paladinfeng.app/2025/12/f4a7419fc7cb858765d105a45c954ca9.png) 53 | ![Screen Shot](https://image.paladinfeng.app/2025/12/9057b4f0542e8170b556f9690375c2a1.png) 54 | -------------------------------------------------------------------------------- /HOW-TO-USE.md: -------------------------------------------------------------------------------- 1 | ## 使用说明 2 | - 使用前,请仔细阅读应用开始的**使用提示** 3 | - **本地连接部分功能不完善,请勿使用** 4 | 5 | ## 操作说明 6 | - 在大多数的列表页(必须在**列表内部**)按下遥控器上的 **「Play/Pause」** 按钮,可以**刷新当前列表** 7 | 8 | ## 重要提示 9 | Q: 视频出现丢帧,音画不同步 10 | A: 开启设置中的「过滤超过60帧的视频」 11 | 12 | Q: 视频点击播放的时候出现长时间loading 13 | A: 修改设置中的 **「播放链接优化」** 策略,但是除了CDN原因,可能还有其他各种原因,要具体分析 14 | 15 | ## Q & A 16 | > Q: 弹幕怎么关?倍速播放可以用吗? 17 | >> A: 弹幕可以在设置页面进行默认值设置,倍速播放只支持 tvOS 15,在播放页面设置 18 | 19 | > Q: 「我的追番」入口显示 20 | >> A: 「番剧」-「查看全部」/「我的」-「我的追番」 21 | 22 | > Q: 自动刷新会在什么时候触发 23 | >> A: 进入后台超过1小时,热门 / 排行榜 / 订阅就会在回到前台的时候触发刷新 24 | 25 | ## 频繁掉登录状态应该怎么修复 26 | - 所有的登录信息都保存在 Apple TV 默认账号的私人 iCloud 中,掉登录状态,就是没有从 iCloud 获取到 27 | - 解决方法参考 28 | 1. 退出当前账号,重新登录 29 | 2. 可以尝试「清空登录信息」 30 | 3. 重新登录 Apple TV 系统设置中的**默认账号** 31 | 32 | ## 解释一下「播放链接优化」的功能 33 | - 目前提供两种策略 34 | 1. **播放链接预解析** /(默认方式)/ 初级选项 35 | > 把获取到的MCDN的播放链接,转成ip+端口的形式进行播放,可以有效解决「无法找到使用指定主机名的服务器」的报错 36 | 2. **播放链接重写** / 进阶选项 37 | > 直接将MCDN/PCDN,切换到主CDN 38 | - 额外说明 39 | 1. PCDN 会直接采用链接中的URL中的备选CDN 40 | 41 | ## 如果出现频繁黑屏Loading,无法正常播放,请尝试下列方法 42 | 1. Apple TV 连接手机热点,测试能否顺利播放 43 | 2. 尝试直连,不要经过软路由 44 | 3. 关闭软路由中的代理程序 45 | 4. 关闭广告屏蔽类插件 46 | 5. 修改「播放链接优化」选项(最后两项关于CDN的设置) 47 | 48 | ## 播放过程中出现断流,一直 loading 无法继续播放 49 | - 退出视频重开吧,不要一直等待了,目前还不知道为什么播放链接出现断连,会继续追查这个问题 50 | 51 | ## 怎么看港澳台 52 | - 开代理,不会分流规则可以开全局 53 | - 分流需要让 api.bilibili.com 走代理 54 | - 全局比较费流量,小水管慎用 55 | - 当你在网页或者客户端上可以看的时候,Miao 自然也可以看 56 | - 需要自己调试,无法自动切换 57 | 58 | ## 港澳台番剧特殊标记 59 | - 所有需要走港澳台的,都会在 header 上加入一个标记 **["x-bili-oversea": "1"]** 60 | - 想要折腾的,写脚本的,可以自行判断 61 | 62 | ## 关于清晰度的说明 63 | - 目前采用的是 原生播放器 + HLS 的方案,所以实现了自动分辨率的效果,可以理解成和 Netflix 是一样的效果 64 | - 播放器会根据 HLS 中的带宽限制,自动切换视频流,具体限制多少带宽,是 API 返回的参数 65 | - 开启**仅加载最高分辨率**后,强制加载最高分辨率 66 | - 显示播放器详细信息(码率,分辨率):https://www.howtogeek.com/409201/how-to-unlock-detailed-streaming-statistics-on-the-apple-tv/ 67 | 68 | ## 关于直播 69 | - Build 31 之后已经支持了直播功能 70 | - 直播在设计中不是一个主要功能,目前不会有一个单独的 Tab 页,将来可能在分区中拓展出来一个单独的入口 71 | - 「动态」中可以查看关注UP主的直播状态 72 | - 可以直接搜索直播 73 | 74 | ## 如何播放 4K 75 | 1. 账号有大会员的权限 76 | 2. 网络带宽足够 77 | 3. 显示设备支持 4K 分辨率,如果你是 1080P 的显示器,应该最多也只能播放 1080P 的内容 78 | 4. 使用 Apple TV 4K 及以上设备 79 | 5. 如果你在播放器简介中发现自己只能显示HD,有可能是系统Bug,请不要纠结这个问题 80 | 6. 如果你想查看自己当前的分辨率信息,请自行打开调试模式,具体方法自行 Google 81 | 82 | ## 关于 8K 83 | 1. Apple TV 不存在 8K 的标签,官方最大也只能输出 4K 的画面 84 | 2. 开启 8K 之后,会有更高的码率,获得类似超采样的效果,理论上画面会更清晰 85 | 3. 如果想知道现在是不是 8K,需要自行打开 Debug 模式,具体怎么开启,自行 Google 86 | 87 | ## 关于 HDR 88 | - App 2.0.2 之后,已经兼容了 HDR 格式,但是个别视频出现不兼容的情况,也是情理之中 89 | - 开启 HDR 的条件比较苛刻,必须同时满足一下条件 90 | 1. 「仅加载最高分辨率」:关闭 91 | 2. 「过滤超过60帧的视频」:关闭 92 | 3. 「匹配视频动态范围和帧率」:全部开启 93 | 4. 系统设置 - 匹配内容:全部开启 94 | 5. 「加载HDR」:开启 95 | 96 | ## 关于杜比视界 / 杜比全景声 97 | 1. 设置里有「加载杜比视界」的选择,用户可以自行决定是否开启 98 | 2. 开启杜比视界后,可能会出现不支持的编码,导致视频无法播放 99 | 3. 目前支持的杜比视界编码 Dolby Vision 8.4(hvc1) + HLG 或者 Dolby Vision 5(dvh1) + PQ 100 | 4. Dolby Vision 8.4 是B站能上传的常见的杜比视界版本,这种版本在 tvOS 上只能激活 HDR10 101 | 5. Dolby Vision 5 是电影中常见的杜比视界版本,可以正常的激活电视上的杜比视界,在B站上只有极个别测试视频采用的这种格式,而且可能并不能正常打开,这都是正常情况 102 | 6. 目前支持的杜比全景声编码 Dolby Digital Plus with Dolby Atmos(ec-3),Dolby Atmos 还在调整参数,现在可能只能显示 Dolby Digital Plus 103 | 7. 市面上的电视不同,各种设置也不同,我能测试的也只是我本地的设备,至于能否开启杜比视界 / 杜比全景声,请不要太纠结 104 | - 开启杜比视界的条件 105 | 1. 「仅加载最高分辨率」:关闭 106 | 2. 「过滤超过60帧的视频」:关闭 107 | 3. 「匹配视频动态范围和帧率」:全部开启 108 | 4. 系统设置 - 匹配内容:全部开启 109 | 5. 「加载杜比视界」:开启 110 | 111 | ## 关于匹配动态范围和帧率 112 | 1. 匹配动态范围和帧率在系统设置中 113 | 2. 开启匹配动态范围和帧率后,播放视频或退出会先黑屏一下,这是正常情况 114 | 3. 匹配帧率只支持视频流中只含有一种帧率的情况 115 | 4. 匹配帧率后,弹幕可能发生比较严重的拖影,不能接受的可以自行关闭匹配帧率的功能 116 | 5. 匹配动态范围支持 SDR / HLG / PQ 117 | 118 | ## Apple TV 推荐全局视频设置 119 | 1. 使用方法:系统设置 / 视频和音频 120 | 2. 格式(Format): 4K SDR 121 | 3. HDMI输出(HDMI Output):YCbCr 122 | 4. 色度(Chroma):4:4:4 123 | 5. 匹配内容(Match Content):全部打开 124 | 125 | 126 | -------------------------------------------------------------------------------- /Changelog.md: -------------------------------------------------------------------------------- 1 | # Miao Project Version 2.4.2 Update Notes 2 | - 修复:某些帐号的用户详情页报错 3 | - 修复:tvOS 26 下播放器不切换到高码率视频流 4 | - 修复:不开启设置中的「匹配视频动态范围和帧率」,将输出 SDR 60FPS 信号,如果和系统设置一致,打开视频就不会黑屏切换 HDMI 信号 5 | - PS:tvOS 26 也许有某些温控策略,设备高温的时候,会限制视频流的码率 6 | 7 | # Miao Project Version 2.4.1 Update Notes 8 | - 新增:设置 - 番剧自动跳过片头片尾 9 | - 新增:设置 - 直播强制使用VLC播放器 10 | - 修复:推荐页面刷新可能发生崩溃 11 | - 修复:播放结束可能发生崩溃崩溃 12 | 13 | # Miao Project Version 2.4.0 Update Notes 14 | - 新增:视频广告自动跳过/视频广告屏蔽器(默认关闭,需要在设置中手动开启) 15 | - 优化:自动跳过番剧片头片尾 16 | - 更新:直播播放器 17 | - 修复:登录过期的判断条件 18 | - 修复:播放时数据解析可能导致崩溃 19 | 20 | # Miao Project Version 2.3.4 Update Notes 21 | - 新增:番剧支持 HDR(需要在设置中手动开启) 22 | 23 | # Miao Project Version 2.3.3 Update Notes 24 | - 修复:直播报错352 25 | - 优化:视频字幕黑名单 26 | - 优化:直播播放器 27 | 28 | # Miao Project Version 2.3.2 Update Notes 29 | - 修复:直播报错352 30 | - 修复:排行榜不刷新 31 | 32 | # Miao Project Version 2.3.1 Update Notes 33 | - 修复:视频字幕显示错乱 34 | - 修复:屏蔽视频字幕中的广告 35 | - 修复:港澳台番剧无法加载视频字幕 36 | - 修复:部份弹幕屏蔽词没有生效 37 | - 修复:番剧页面,banner图片比例 38 | - 修复:历史记录触发重复请求 39 | - 优化:直播播放器 40 | 41 | # Miao Project Version 2.3.0 Update Notes 42 | - 新增:弹幕屏蔽器(自动同步屏蔽词) 43 | - 修复:某些情况下视频播放完成可能会发生闪退 44 | 45 | # Miao Project Version 2.2.13 Update Notes 46 | - 新增:视频单集循环 47 | - 修复:推荐页面充电视频无法打开 48 | - 修复:账号列表中出现空白账号的问题 49 | - 修复:部分直播间黑屏无法播放 50 | - 修复:部分视频播放报错 51 | - 修复:由于某脚本重写网络请求,导致动态页面报错 52 | - 修复:历史记录加载更多时滑动到列表最上端 53 | 54 | # Miao Project Version 2.2.12 Update Notes 55 | - 优化:直播播放体验 56 | - 优化:进入后台15分钟后,刷新「热门」/「排行榜」/「动态」数据 57 | - 修复:动态页面直播的UP主显示不全 58 | 59 | # Miao Project Version 2.2.11 Update Notes 60 | - 修复:动态页面报错 61 | 62 | # Miao Project Version 2.2.10 Update Notes 63 | - 修复:无直播弹幕 64 | 65 | # Miao Project Version 2.2.9 Update Notes 66 | - 优化:凭证页面以及激活报错页面无法显示完整ID 67 | - 优化:视频分享采用匿名链接 68 | - 优化:历史记录以及收藏夹刷新模式 69 | - 修复:部分地区进入直播后黑屏 70 | - 修复:由于音频播放链接不可用导致整个视频无法播放 71 | 72 | # Miao Project Version 2.2.8 Update Notes 73 | - 优化:帧率匹配模式 74 | - 修复: HEVC优先导致部分视频最高分辨率丢失 75 | - 修复:部分本来可以打开的番剧Banner报错类型不支持 76 | 77 | # Miao Project Version 2.2.7 Update Notes 78 | - 修复:搜索报错 79 | 80 | # Miao Project Version 2.2.6 Update Notes 81 | - 修复:tvOS 17.2 下 App 闪退的问题 82 | 83 | # Miao Project Version 2.2.5 Update Notes 84 | - 新增:仅 HDR/DV 的时候开启匹配内容 85 | - 新增:关闭匹配的状态下,不再获取杜比视界 / HDR 的视频源 86 | - 修复:tvOS 17 置顶图片 87 | - 修复:iCloud 环境在 tvOS 17 显示未知 88 | 89 | # Miao Project Version 2.2.4 Update Notes 90 | - 新增:播放报错收集机制 91 | - 新增:使用 Sentry 收集 App 的崩溃日志 92 | - 修复:直播弹幕在某些情况下不显示 93 | - 修复:视频播放结束时可能发生的崩溃问题 94 | 95 | # Miao Project Version 2.2.3 Update Notes 96 | - 新增:设置 - 连续播放提示信息 97 | - 修复:直播弹幕异常 98 | - 修复:播放时可能发生的崩溃 99 | 100 | # Miao Project Version 2.2.2 Update Notes 101 | - 修复:镜像功能在 tvOS 16 上不起作用 102 | - 修复:显示隐藏「动态」时,App 可能会发生崩溃 103 | - 修复:修改播放速率可能导致 App 崩溃 104 | - 修复:读取 iCloud 数据可能导致 App 崩溃 105 | 106 | # Miao Project Version 2.2.1 Update Notes 107 | - 新增:视频镜像(播放页面单次开启) 108 | - 优化:激活报错中关于凭证的错误信息 109 | - 优化:视频详情中分P / 合集 / 番剧,会滑动到相应位置 110 | - 修复:超长剧集点击播放后长时间卡顿 111 | - 修复:番剧展开全部无法播放 112 | - 修复:倍速播放暂停后恢复一倍速 113 | - 修复:番剧跳过OP/ED功能失效 114 | - 修复:「即将播放」提示不自动消失 115 | 116 | # Miao Project Version 2.2.0 Update Notes 117 | - 新增:连续播放 118 | - 新增:剥离番剧中的预告 119 | - 新增:设置 - AI字幕默认状态 120 | - 更新:番剧接口API 121 | - 更新:登录接口 122 | - 修复:《古相思曲》这部剧集数是反的,继续播放功能错误 123 | 124 | # Miao Project Version 2.1.6 Update Notes 125 | - 紧急修复:播放链接预解析导致无法播放 126 | 127 | # Miao Project Version 2.1.5 Update Notes 128 | - 修复:搜索报错 129 | 130 | # Miao Project Version 2.1.4 Update Notes 131 | - 修复:刷新回弹问题 132 | 133 | # Miao Project Version 2.1.3 Update Notes 134 | - 修复:tvOS 16 以下的用户,网络请求可能会出现API校验错误 135 | - 修复:请求鉴权失败,将删除全部的登录信息,请重新登录 136 | - 修复:番剧更新为新的banner类型 137 | 138 | # Miao Project Version 2.1.2 Update Notes 139 | - 新增:App Icon 切换 140 | - 修复:追番接口变更 141 | - 修复:某些情况下弹出错误HUD可能导致应用崩溃 142 | - ⚠️  本次更新将会强制登出所有登录状态,请重新登录 143 | 144 | # Miao Project Version 2.1.1 Update Notes 145 | - 紧急修复:扫码登录手机端无法点击确认 146 | - 修复:「过滤超过60帧的视频」导致视频无法播放 147 | 148 | # Miao Project Version 2.1.0 Update Notes 149 | - 新增:更换新 icon 150 | - 新增:更换新的置顶图 151 | - 新增:番剧选集播放页切换(下一个EP) 152 | - 新增:字幕端口切换 153 | - 新增:播放器内部调整弹幕区域 154 | - 新增:弹幕描边设置 155 | - 新增:热门匿名模式设置 156 | - 修复:视频简介超出边界 157 | - 优化:倍速播放在 tvOS 16.2 之后已经正常 158 | - 优化:倍速播放增加 1.75,2.0 选项 159 | - 优化:默认关闭「匹配视频动态范围和帧率」 160 | - 优化:默认开启「过滤超过60帧的视频」 161 | 162 | # Miao Project Version 2.0.3 Update Notes 163 | - 新增:播放进度缩略图 164 | - 修复:NowPlaying 停在0秒的问题 165 | - 优化:视频加载速度 166 | - 优化:修改视频缓冲策略 167 | - 优化:默认开启「主CDN优先加载」 168 | 169 | # Miao Project Version 2.0.2 Update Notes 170 | - 新增:兼容 HDR 格式 171 | - 新增:「设置」- 播放链接主CDN优先模式 172 | - 优化:缩略图清晰度 173 | - 修复:由于系统 BUG,tvOS 16 连接 HomePod 时,倍速功能将失效 174 | 175 | # Miao Project Version 2.0.1 Update Notes 176 | - 新增:登陆页进度提示 177 | - 修复:新注册用户无法登陆的问题 178 | - 修复:多用户多设备切换时同步数据导致冲突,改为本地保存选中的用户 179 | - 修复:番剧未开播,点击播放导致崩溃 180 | 181 | # Miao Project Version 2.0.0 Update Notes 182 | - 新增:重新开放激活通道,新激活通道允许6个iCloud调用激活 183 | 184 | # Miao Project Version 1.1.6 Update Notes 185 | - 新增:暂时关闭激活入口 186 | - 新增:部分番剧支持跳过OP/ED 187 | - 优化:大幅减少程序需要的内存占用 188 | - 修复:视频详情页继续播放可能发生崩溃 189 | 190 | # Miao Project Version 1.1.5 Update Notes 191 | - 新增:FLAC音频支持 192 | - 新增:二维码分享 193 | - 优化:视频点击继续播放 194 | - 修复:视频记录不显示已完成 195 | - 修复:竖屏直播画面出现裁切 196 | - 修复:tvOS 16 详情页推荐点击闪退 197 | - 修复:tvOS 16 详情页简介内容越界 198 | - 修复:tvOS 16.1 播放报错 199 | 200 | # Miao Project Version 1.1.4 Update Notes 201 | - 新增:flv直播播放器 202 | - 优化:不再默认选择AI生成的字幕 203 | - 优化:默认在支持HEVC硬解设备上开启HEVC优先设置 204 | - 修复:杜比视界部分编码无法打开 205 | - 实验室:播放链接优化(播放链接预解析 / 播放链接重写) 206 | 207 | # Miao Project Version 1.1.3 Update Notes 208 | - 新增:自动刷新机制 209 | - 新增:港澳台番剧特殊标记 210 | - 优化:播放链接选择器 211 | - 优化:5秒内的播放记录,不会触发「继续播放」 212 | - 修复:视频详情页 - 推荐视频,点击后页面滚动问题 213 | 214 | # Miao Project Version 1.1.2 Update Notes 215 | - 修复:无法观看直播 216 | 217 | # Miao Project Version 1.1.1 Update Notes 218 | - 新增:影视推荐 219 | - 新增:错误重试页面 220 | - 优化:更新番剧推荐接口 221 | - 优化:弹幕速度调节 222 | - 实验室:全局倍速播放 223 | - 实验室:匹配动态范围和帧率 224 | 225 | # Miao Project Version 1.1 Update Notes 226 | - 新增:详情页视频合集 227 | - 新增:播放页面,查看视频调试信息 228 | - 新增:查看 iCloud 状态 229 | - 新增:清空 iCloud 中所有账户信息 230 | - 优化:更新排行榜的API 231 | - 优化:更新应用内操作说明 232 | - 优化:CDN排序 233 | - 优化:番剧连续播放调整为播放完跳转 234 | - 修复:倍速播放暂停后被重置 235 | - 修复:过滤60帧以上视频的功能某些情况下失效 236 | 237 | # Miao Project Build 69 Update Notes 238 | - 更新应用图标和置顶图 239 | 240 | # Miao Project Build 68 Update Notes 241 | - 修复:某些用户硬币数超过上限导致崩溃 242 | 243 | # Miao Project Build 67 Update Notes 244 | - 新增:番剧详情页显示剧集是否需要会员等额外信息 245 | - 新增:视频详情页,相关推荐,提供多种弹出方式 246 | - 新增:「我的追番」入口 247 | - 优化:调整「切换账户」的位置 248 | - 修复:某些个人页面可能会引发崩溃 249 | - 修复:列表页刷新的时候,可能产生多余的跳动 250 | - 修复:「我的」页面,从下级页面返回,丢失选中效果 251 | 252 | # Miao Project Build 66 Update Notes 253 | - 修复:某些用户登陆闪退的问题 254 | 255 | # Miao Project Build 65 Update Notes 256 | - 注意⚠️:本次更新会清空激活状态 / 个人设置 / 账户信息,用户需要重新激活登陆 257 | - 新增:多账户系统,并且支持iCloud同步,最多添加5个Profile 258 | - 新增:通过iCloud同步设置信息 259 | - 新增:通过iCloud同步 App 激活状态 260 | - 修复:「我的」页面可能发生奔溃的问题 261 | 262 | # Miao Project Build 64 Update Notes 263 | - 修复:动态页加载更多,可能发生崩溃 264 | 265 | # Miao Project Build 63 Update Notes 266 | - 修复:更新 tvOS 15.4 后,列表无法流畅滑动的问题 267 | - 新增:设置 -「过滤超过60帧的视频」,开启后可能会改善某些视频丢帧导致无法正常观看的问题,请仔细阅读说明和副作用,仅建议有此问题的用户自行尝试 268 | 269 | # Miao Project Build 57 Update Notes 270 | - 新增:显示具体播放错误 271 | - 修复:播放资源502报错,可能导致应用崩溃的问题 272 | 273 | # Miao Project Build 56 Update Notes 274 | - 新增:设置页面显示版本信息 275 | - 修复:番剧自动播放导致弹幕开关失效的问题 276 | - 修复:视频播放记录少一秒的问题 277 | - 修复:番剧自动播放下一集可能包含上一集弹幕的问题 278 | 279 | # Miao Project Build 55 Update Notes 280 | - 新增「番剧连续播放」开关设置 281 | - 修复番剧连续播放,手动点击播放后,自动退出的问题 282 | 283 | # Miao Project Build 54 Update Notes 284 | - 重构播放资源加载流程 285 | - 新增番剧自动播放下一集 286 | - 修复了播放界面Loading过程中无法退出的问题 287 | 288 | # Miao Project Build 53 Update Notes 289 | - 修复了收藏夹「查看全部」按钮无法显示的问题 290 | - 修复了某些剧集缺少数据,导致追剧列表报错的问题 291 | 292 | # Miao Project Build 52 Update Notes 293 | - 也许优化了 Apple TV HD 的播放体验,未经过测试 294 | - 修复了某些视频播放过程中,无法退出页面,遥控器失去响应的问题 295 | 296 | # Miao Project Build 51 Update Notes 297 | - 「仅加载HEVC」修改为「优先加载HEVC」策略,并修复了某些资源没有压制HEVC导致视频无法播放的问题 298 | 299 | # Miao Project Build 50 Update Notes 300 | - 新增「仅加载HEVC」选项,开启后只会加载HEVC(H265)资源,相同画质下,占用的带宽会降低一半左右 301 | - 也许现在 Dolby Atmos 可以点亮图标了,未经过测试 302 | 303 | # Miao Project Build 49 Update Notes 304 | - 支持杜比视界(Dolby Vision 8.4 + HLG 或者 Dolby Vision 5 + PQ) 305 | - 支持杜比全景声(Dolby Digital Plus with Dolby Atmos) 306 | - 现在可以正确匹配视频的动态范围和帧率了 307 | - 新增「加载杜比视界」设置 308 | 309 | # Miao Project Build 48 Update Notes 310 | - 移除关于 CDN 的屏蔽,因为部分地区的用户只能收到 szbdyd 的播放链接,屏蔽之后无法正常播放 311 | 312 | # Miao Project Build 47 Update Notes 313 | - 更新屏蔽的 CDN 列表,屏蔽 szbdyd 314 | 315 | # Miao Project Build 46 Update Notes 316 | - 支持8K分辨率视频播放 317 | - 更新番剧接口,现在部分番剧支持4K分辨率啦! 318 | - 移除「首选分辨率」设置 319 | 320 | # Miao Project Build 45 Update Notes 321 | - 推荐页可以显示直播内容 322 | - 更新收藏接口,并支持了收藏订阅功能 323 | - 修复了收藏夹中的番剧不显示的问题 324 | - 修复了搜索功能在某些情况下数据解析错误 325 | 326 | # Miao Project Build 44 Update Notes 327 | - 修复了直播弹幕开关消失的问题 328 | 329 | # Miao Project Build 43 Update Notes 330 | - 修复了排行榜科技区部分数据解析错误 331 | 332 | # Miao Project Build 42 Update Notes 333 | - 项目贡献者可以使用 Mod 组的特殊角标 334 | - 自动去除输入的激活码里所有的空格 335 | - 优化了弹幕的生成效率 336 | - 修复了部分视频详情中包含未上映番剧导致无法打开的问题 337 | - 修复了未上映番剧封面不显示的问题 338 | - 修复了 AI 生成的中文字幕无法自动选中的问题 339 | 340 | # Miao Project Build 41 Update Notes 341 | - 更新 Top Shelf,并支持深色模式 342 | 343 | # Miao Project Build 40 Update Notes 344 | - 新增直播搜索功能 345 | - 新增直播清晰度选择功能,最高画质卡顿的用户,可自行降低画质 346 | 347 | # Miao Project Build 36 Update Notes 348 | - 修复了音频切片信息错误导致无法播放的问题 349 | 350 | # Miao Project Build 35 Update Notes 351 | - 这次应该真的修复了码率降低之后不升高的问题 352 | 353 | # Miao Project Build 34 Update Notes 354 | - 可能改善了 HLS 降低分辨率的情况 355 | - 修复了由于 SIDX 无法加载,导致视频一直在 Loading 的问题 356 | - 播放器现在可以正确匹配视频帧率(仅限支持的帧率),播放开始/结束时,出现黑屏时正常情况 357 | 358 | # Miao Project Build 33 Update Notes 359 | - 新增「设置」-「弹幕显示区域」 360 | - 拓展弹幕不透明的选择范围 361 | - 修复了弹幕重叠的问题 362 | - 添加章节的封面占位图 363 | 364 | # Miao Project Build 32 Update Notes 365 | - 新增 UGC 视频分段章节 366 | - 新增直播弹幕 367 | - 新增直播页弹幕显示 / 隐藏设置(tvOS 15 限定) 368 | - 修复了直播页退出之后声音延迟释放的问题 369 | 370 | # Miao Project Build 31 Update Notes 371 | - 支持观看直播,直播弹幕的功能还在制作中 372 | - 允许查看关注UP主的直播状态,这是第一个直播版本的唯一入口 373 | 374 | # Miao Project Build 30 Update Notes 375 | - 视频资源的CDN选择切换为黑名单模式 376 | - 超长番剧允许直接展开所有剧集 377 | - 修复了番剧页面非番剧的 Banner 进入报错的问题 378 | - 隐藏搜索页出现的查看全部按钮(功能未支持) 379 | 380 | # Miao Project Build 29 Update Notes 381 | - UP 主详情页,新增按播放数量排序 382 | - 弹幕字号允许设置为 42 pt 383 | - 修复了「动态」、「历史记录」中可能出现的数据解析错误 384 | - 修复了登录后,动态栏出现在错误的位置 385 | 386 | # Miao Project Build 28 Update Notes 387 | - 修复了海外用户无法正确加载过滤CDN的问题 388 | - 更新「我的追番」的使用说明 389 | 390 | # Miao Project Build 27 Update Notes 391 | - 已撤回 392 | 393 | # Miao Project Build 26 Update Notes 394 | - 新增「我的追剧」,入口是和「我的追番」同一个页面 395 | - 目前仅采用官方CDN,希望可以改善播放中可能会出现的卡顿 396 | - 修复了无音轨的视频文件无法正常播放的问题 397 | 398 | # Miao Project Build 25 Update Notes 399 | - 让大家久等了,本次更新「番剧」模块终于上线了 400 | - 修复了「热门」中无法正确进入番剧详情页的问题 401 | 402 | # Miao Project Build 24 Update Notes 403 | - 修复番剧由于不支持的音源,导致无法快进的问题 404 | 405 | # Miao Project Build 23 Update Notes 406 | - 修复「设置」-「仅加载最高分辨率」会将番剧清晰度锁死在最低的问题 407 | 408 | # Miao Project Build 22 Update Notes 409 | - 新增「设置」-「仅加载最高分辨率」,本设置是为了处理即使带宽足够,播放器也会降低分辨率的情况,请用户根据自己的情况自行开启 410 | - 更新 App 内的「使用说明」 411 | - 更新 tvOS 15 播放器展示的元数据信息 412 | - 修复了播放器释放延迟的问题 413 | 414 | # Miao Project Build 21 Update Notes 415 | - 新增播放页弹幕显示 / 隐藏设置(tvOS 15 限定) 416 | - 新增播放页倍速播放(tvOS 15 限定)倍速播放可能会导致部分视频画面掉帧,目前还没找到解决方法 417 | 418 | # Miao Project Build 20 Update Notes 419 | - 修复了 tvOS 15 Beta 无法加载弹幕的问题,本次修复仅使用其他方法避过了原来问题,网络请求缓慢时可能导致弹幕加载不出或者加载延迟 420 | 421 | # Miao Project Build 19 Update Notes 422 | - 修复了部分视频由于没有 Tag 导致数据解析错误的问题 423 | 424 | # Miao Project Build 18 Update Notes 425 | - 支持显示外挂字幕 426 | - 允许设置弹幕屏蔽等级 427 | 428 | # Miao Project Build 17 Update Notes 429 | - 修复了负时间线弹幕导致播放器崩溃的问题 430 | 431 | # Miao Project Build 16 Update Notes 432 | - 修复弹幕属性更新导致的解析错误 433 | - 修复部分用户点击播放时,解析SIDX出错导致的崩溃问题 434 | 435 | # Miao Project Build 15 Update Notes 436 | - 更新用户 Token 刷新机制 437 | - 修复了视频第一秒弹幕会多次出现在屏幕的问题 438 | - 集成 Flurry 收集崩溃信息 439 | 440 | # Miao Project Build 14 Update Notes 441 | - 更新用户授权机制(番剧相关) 442 | - 修复了部分番剧不能正常播放的问题 443 | - 修复了部分用户播放视频直接崩溃的问题 444 | - 动态和UP主详情页显示投稿时间 445 | - 注:本次更新后,需要用户重新登录 446 | 447 | # Miao Project Build 13 Update Notes 448 | - 新增 UGC 视频的点赞、投币、收藏操作 449 | - 新增「视频详情页、UP主详情页」关注UP主的功能 450 | - 新增查看「我的关注」列表 451 | - 修复搜索结果中,电影无法点击的问题 452 | 453 | # Miao Project Build 12 Update Notes 454 | - 支持视频资源切片 455 | - 支持中文系统 UI 456 | - 恢复「继续播放」功能 457 | - 修复了快进等待时间过长的问题 458 | - 修复了电影级长视频播放中出现崩溃的问题 459 | - 修复了HLS自动切换分辨率过程中,出现视频重置的情况 460 | 461 | # Miao Project Build 11 Update Notes 462 | - 修复了部分用户播放视频导致应用崩溃的问题 463 | 464 | # Miao Project Build 10 Update Notes 465 | - 支持 tvOS 原生播放器 466 | - 根据网络带宽自动选择分辨率 467 | - 支持原生播放器手势 468 | - 修复 4K 高码率视频播放时出现卡顿,声画不同步的情况 469 | 470 | * 本次更新由于没有支持视频切片,暂时停用了「继续播放」功能 471 | * 快进的时候也可能出现较长时间的等待 472 | 473 | # Miao Project Build 9 Update Notes 474 | - 新增「设置 - 弹幕透明度」 475 | - 新增「设置 - 弹幕字号」 476 | - 修复无历史记录时报错的问题 477 | 478 | # Miao Project Build 8 Update Notes 479 | - 新增「设置 - 首选分辨率」 480 | 481 | # Miao Project Build 7 Update Notes 482 | - 新增操作提示 483 | 484 | # Miao Project Build 6 Update Notes 485 | - 不完美适配 AirPlay,播放过程中切换可能会导致声画不同步 486 | - 未登录状态下允许修改播放器设置 487 | 488 | # Miao Project Build 5 Update Notes 489 | - 优化应用启动速度 490 | - 优化内存占用 491 | - 播放状态下,自动隐藏进度条 492 | - 修复「排行榜 / 我的」页面返回出现闪屏的情况 493 | - 深色弹幕使用浅色边框 494 | - 更新热门模块API 495 | - 优化登录页面二维码 496 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | GNU GENERAL PUBLIC LICENSE 2 | Version 2, June 1991 3 | 4 | Copyright (C) 1989, 1991 Free Software Foundation, Inc., 5 | 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 6 | Everyone is permitted to copy and distribute verbatim copies 7 | of this license document, but changing it is not allowed. 8 | 9 | Preamble 10 | 11 | The licenses for most software are designed to take away your 12 | freedom to share and change it. By contrast, the GNU General Public 13 | License is intended to guarantee your freedom to share and change free 14 | software--to make sure the software is free for all its users. This 15 | General Public License applies to most of the Free Software 16 | Foundation's software and to any other program whose authors commit to 17 | using it. (Some other Free Software Foundation software is covered by 18 | the GNU Lesser General Public License instead.) You can apply it to 19 | your programs, too. 20 | 21 | When we speak of free software, we are referring to freedom, not 22 | price. Our General Public Licenses are designed to make sure that you 23 | have the freedom to distribute copies of free software (and charge for 24 | this service if you wish), that you receive source code or can get it 25 | if you want it, that you can change the software or use pieces of it 26 | in new free programs; and that you know you can do these things. 27 | 28 | To protect your rights, we need to make restrictions that forbid 29 | anyone to deny you these rights or to ask you to surrender the rights. 30 | These restrictions translate to certain responsibilities for you if you 31 | distribute copies of the software, or if you modify it. 32 | 33 | For example, if you distribute copies of such a program, whether 34 | gratis or for a fee, you must give the recipients all the rights that 35 | you have. You must make sure that they, too, receive or can get the 36 | source code. And you must show them these terms so they know their 37 | rights. 38 | 39 | We protect your rights with two steps: (1) copyright the software, and 40 | (2) offer you this license which gives you legal permission to copy, 41 | distribute and/or modify the software. 42 | 43 | Also, for each author's protection and ours, we want to make certain 44 | that everyone understands that there is no warranty for this free 45 | software. If the software is modified by someone else and passed on, we 46 | want its recipients to know that what they have is not the original, so 47 | that any problems introduced by others will not reflect on the original 48 | authors' reputations. 49 | 50 | Finally, any free program is threatened constantly by software 51 | patents. We wish to avoid the danger that redistributors of a free 52 | program will individually obtain patent licenses, in effect making the 53 | program proprietary. To prevent this, we have made it clear that any 54 | patent must be licensed for everyone's free use or not licensed at all. 55 | 56 | The precise terms and conditions for copying, distribution and 57 | modification follow. 58 | 59 | GNU GENERAL PUBLIC LICENSE 60 | TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION 61 | 62 | 0. This License applies to any program or other work which contains 63 | a notice placed by the copyright holder saying it may be distributed 64 | under the terms of this General Public License. The "Program", below, 65 | refers to any such program or work, and a "work based on the Program" 66 | means either the Program or any derivative work under copyright law: 67 | that is to say, a work containing the Program or a portion of it, 68 | either verbatim or with modifications and/or translated into another 69 | language. (Hereinafter, translation is included without limitation in 70 | the term "modification".) Each licensee is addressed as "you". 71 | 72 | Activities other than copying, distribution and modification are not 73 | covered by this License; they are outside its scope. The act of 74 | running the Program is not restricted, and the output from the Program 75 | is covered only if its contents constitute a work based on the 76 | Program (independent of having been made by running the Program). 77 | Whether that is true depends on what the Program does. 78 | 79 | 1. You may copy and distribute verbatim copies of the Program's 80 | source code as you receive it, in any medium, provided that you 81 | conspicuously and appropriately publish on each copy an appropriate 82 | copyright notice and disclaimer of warranty; keep intact all the 83 | notices that refer to this License and to the absence of any warranty; 84 | and give any other recipients of the Program a copy of this License 85 | along with the Program. 86 | 87 | You may charge a fee for the physical act of transferring a copy, and 88 | you may at your option offer warranty protection in exchange for a fee. 89 | 90 | 2. You may modify your copy or copies of the Program or any portion 91 | of it, thus forming a work based on the Program, and copy and 92 | distribute such modifications or work under the terms of Section 1 93 | above, provided that you also meet all of these conditions: 94 | 95 | a) You must cause the modified files to carry prominent notices 96 | stating that you changed the files and the date of any change. 97 | 98 | b) You must cause any work that you distribute or publish, that in 99 | whole or in part contains or is derived from the Program or any 100 | part thereof, to be licensed as a whole at no charge to all third 101 | parties under the terms of this License. 102 | 103 | c) If the modified program normally reads commands interactively 104 | when run, you must cause it, when started running for such 105 | interactive use in the most ordinary way, to print or display an 106 | announcement including an appropriate copyright notice and a 107 | notice that there is no warranty (or else, saying that you provide 108 | a warranty) and that users may redistribute the program under 109 | these conditions, and telling the user how to view a copy of this 110 | License. (Exception: if the Program itself is interactive but 111 | does not normally print such an announcement, your work based on 112 | the Program is not required to print an announcement.) 113 | 114 | These requirements apply to the modified work as a whole. If 115 | identifiable sections of that work are not derived from the Program, 116 | and can be reasonably considered independent and separate works in 117 | themselves, then this License, and its terms, do not apply to those 118 | sections when you distribute them as separate works. But when you 119 | distribute the same sections as part of a whole which is a work based 120 | on the Program, the distribution of the whole must be on the terms of 121 | this License, whose permissions for other licensees extend to the 122 | entire whole, and thus to each and every part regardless of who wrote it. 123 | 124 | Thus, it is not the intent of this section to claim rights or contest 125 | your rights to work written entirely by you; rather, the intent is to 126 | exercise the right to control the distribution of derivative or 127 | collective works based on the Program. 128 | 129 | In addition, mere aggregation of another work not based on the Program 130 | with the Program (or with a work based on the Program) on a volume of 131 | a storage or distribution medium does not bring the other work under 132 | the scope of this License. 133 | 134 | 3. You may copy and distribute the Program (or a work based on it, 135 | under Section 2) in object code or executable form under the terms of 136 | Sections 1 and 2 above provided that you also do one of the following: 137 | 138 | a) Accompany it with the complete corresponding machine-readable 139 | source code, which must be distributed under the terms of Sections 140 | 1 and 2 above on a medium customarily used for software interchange; or, 141 | 142 | b) Accompany it with a written offer, valid for at least three 143 | years, to give any third party, for a charge no more than your 144 | cost of physically performing source distribution, a complete 145 | machine-readable copy of the corresponding source code, to be 146 | distributed under the terms of Sections 1 and 2 above on a medium 147 | customarily used for software interchange; or, 148 | 149 | c) Accompany it with the information you received as to the offer 150 | to distribute corresponding source code. (This alternative is 151 | allowed only for noncommercial distribution and only if you 152 | received the program in object code or executable form with such 153 | an offer, in accord with Subsection b above.) 154 | 155 | The source code for a work means the preferred form of the work for 156 | making modifications to it. For an executable work, complete source 157 | code means all the source code for all modules it contains, plus any 158 | associated interface definition files, plus the scripts used to 159 | control compilation and installation of the executable. However, as a 160 | special exception, the source code distributed need not include 161 | anything that is normally distributed (in either source or binary 162 | form) with the major components (compiler, kernel, and so on) of the 163 | operating system on which the executable runs, unless that component 164 | itself accompanies the executable. 165 | 166 | If distribution of executable or object code is made by offering 167 | access to copy from a designated place, then offering equivalent 168 | access to copy the source code from the same place counts as 169 | distribution of the source code, even though third parties are not 170 | compelled to copy the source along with the object code. 171 | 172 | 4. You may not copy, modify, sublicense, or distribute the Program 173 | except as expressly provided under this License. Any attempt 174 | otherwise to copy, modify, sublicense or distribute the Program is 175 | void, and will automatically terminate your rights under this License. 176 | However, parties who have received copies, or rights, from you under 177 | this License will not have their licenses terminated so long as such 178 | parties remain in full compliance. 179 | 180 | 5. You are not required to accept this License, since you have not 181 | signed it. However, nothing else grants you permission to modify or 182 | distribute the Program or its derivative works. These actions are 183 | prohibited by law if you do not accept this License. Therefore, by 184 | modifying or distributing the Program (or any work based on the 185 | Program), you indicate your acceptance of this License to do so, and 186 | all its terms and conditions for copying, distributing or modifying 187 | the Program or works based on it. 188 | 189 | 6. Each time you redistribute the Program (or any work based on the 190 | Program), the recipient automatically receives a license from the 191 | original licensor to copy, distribute or modify the Program subject to 192 | these terms and conditions. You may not impose any further 193 | restrictions on the recipients' exercise of the rights granted herein. 194 | You are not responsible for enforcing compliance by third parties to 195 | this License. 196 | 197 | 7. If, as a consequence of a court judgment or allegation of patent 198 | infringement or for any other reason (not limited to patent issues), 199 | conditions are imposed on you (whether by court order, agreement or 200 | otherwise) that contradict the conditions of this License, they do not 201 | excuse you from the conditions of this License. If you cannot 202 | distribute so as to satisfy simultaneously your obligations under this 203 | License and any other pertinent obligations, then as a consequence you 204 | may not distribute the Program at all. For example, if a patent 205 | license would not permit royalty-free redistribution of the Program by 206 | all those who receive copies directly or indirectly through you, then 207 | the only way you could satisfy both it and this License would be to 208 | refrain entirely from distribution of the Program. 209 | 210 | If any portion of this section is held invalid or unenforceable under 211 | any particular circumstance, the balance of the section is intended to 212 | apply and the section as a whole is intended to apply in other 213 | circumstances. 214 | 215 | It is not the purpose of this section to induce you to infringe any 216 | patents or other property right claims or to contest validity of any 217 | such claims; this section has the sole purpose of protecting the 218 | integrity of the free software distribution system, which is 219 | implemented by public license practices. Many people have made 220 | generous contributions to the wide range of software distributed 221 | through that system in reliance on consistent application of that 222 | system; it is up to the author/donor to decide if he or she is willing 223 | to distribute software through any other system and a licensee cannot 224 | impose that choice. 225 | 226 | This section is intended to make thoroughly clear what is believed to 227 | be a consequence of the rest of this License. 228 | 229 | 8. If the distribution and/or use of the Program is restricted in 230 | certain countries either by patents or by copyrighted interfaces, the 231 | original copyright holder who places the Program under this License 232 | may add an explicit geographical distribution limitation excluding 233 | those countries, so that distribution is permitted only in or among 234 | countries not thus excluded. In such case, this License incorporates 235 | the limitation as if written in the body of this License. 236 | 237 | 9. The Free Software Foundation may publish revised and/or new versions 238 | of the General Public License from time to time. Such new versions will 239 | be similar in spirit to the present version, but may differ in detail to 240 | address new problems or concerns. 241 | 242 | Each version is given a distinguishing version number. If the Program 243 | specifies a version number of this License which applies to it and "any 244 | later version", you have the option of following the terms and conditions 245 | either of that version or of any later version published by the Free 246 | Software Foundation. If the Program does not specify a version number of 247 | this License, you may choose any version ever published by the Free Software 248 | Foundation. 249 | 250 | 10. If you wish to incorporate parts of the Program into other free 251 | programs whose distribution conditions are different, write to the author 252 | to ask for permission. For software which is copyrighted by the Free 253 | Software Foundation, write to the Free Software Foundation; we sometimes 254 | make exceptions for this. Our decision will be guided by the two goals 255 | of preserving the free status of all derivatives of our free software and 256 | of promoting the sharing and reuse of software generally. 257 | 258 | NO WARRANTY 259 | 260 | 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY 261 | FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN 262 | OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES 263 | PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED 264 | OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF 265 | MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS 266 | TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE 267 | PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, 268 | REPAIR OR CORRECTION. 269 | 270 | 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING 271 | WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR 272 | REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, 273 | INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING 274 | OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED 275 | TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY 276 | YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER 277 | PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE 278 | POSSIBILITY OF SUCH DAMAGES. 279 | 280 | END OF TERMS AND CONDITIONS 281 | 282 | How to Apply These Terms to Your New Programs 283 | 284 | If you develop a new program, and you want it to be of the greatest 285 | possible use to the public, the best way to achieve this is to make it 286 | free software which everyone can redistribute and change under these terms. 287 | 288 | To do so, attach the following notices to the program. It is safest 289 | to attach them to the start of each source file to most effectively 290 | convey the exclusion of warranty; and each file should have at least 291 | the "copyright" line and a pointer to where the full notice is found. 292 | 293 | 294 | Copyright (C) 295 | 296 | This program is free software; you can redistribute it and/or modify 297 | it under the terms of the GNU General Public License as published by 298 | the Free Software Foundation; either version 2 of the License, or 299 | (at your option) any later version. 300 | 301 | This program is distributed in the hope that it will be useful, 302 | but WITHOUT ANY WARRANTY; without even the implied warranty of 303 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 304 | GNU General Public License for more details. 305 | 306 | You should have received a copy of the GNU General Public License along 307 | with this program; if not, write to the Free Software Foundation, Inc., 308 | 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 309 | 310 | Also add information on how to contact you by electronic and paper mail. 311 | 312 | If the program is interactive, make it output a short notice like this 313 | when it starts in an interactive mode: 314 | 315 | Gnomovision version 69, Copyright (C) year name of author 316 | Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. 317 | This is free software, and you are welcome to redistribute it 318 | under certain conditions; type `show c' for details. 319 | 320 | The hypothetical commands `show w' and `show c' should show the appropriate 321 | parts of the General Public License. Of course, the commands you use may 322 | be called something other than `show w' and `show c'; they could even be 323 | mouse-clicks or menu items--whatever suits your program. 324 | 325 | You should also get your employer (if you work as a programmer) or your 326 | school, if any, to sign a "copyright disclaimer" for the program, if 327 | necessary. Here is a sample; alter the names: 328 | 329 | Yoyodyne, Inc., hereby disclaims all copyright interest in the program 330 | `Gnomovision' (which makes passes at compilers) written by James Hacker. 331 | 332 | , 1 April 1989 333 | Ty Coon, President of Vice 334 | 335 | This General Public License does not permit incorporating your program into 336 | proprietary programs. If your program is a subroutine library, you may 337 | consider it more useful to permit linking proprietary applications with the 338 | library. If this is what you want to do, use the GNU Lesser General 339 | Public License instead of this License. 340 | --------------------------------------------------------------------------------