使用方法
- YouTube频道名生成器的第一个输入是「生成数量」(默认 12,整数 1~100)。数量直接决定撞名概率:12 条约 9.83%,50 条就跳到 83.40%。
- 决定要不要「加三位数字后缀」。默认勾选,数字取 001~999 随机一个;不勾选时空间只有 696 种,生成 30 条就有 47.62% 概率撞名。
- 选「分隔符」(默认连字符
-)。四种都是 handle 合法字符,但只有连字符能让人一眼看出断在哪。 - 勾选「过滤保留词」与「标出易混字符」。前者拦下 youtube、google 等 10 个官方保留词,后者把含 0/o、1/l 的名字标黄提醒——不拒绝,因为读音相近并不违规。
- 点「生成频道名」。四张卡给出实际产出条数、码点数范围、词库空间与撞名概率;下方对照表可导出 CSV。
这个 YouTube频道名生成器能解决什么问题
YouTube频道名生成器解决的第一件事是把「取名」和「能不能注册」拆开。起个名字只要十分钟,去 YouTube 申请 handle 被拒是另一回事——被拒的三个最常见原因是:短于 3 字符、超过 30 字符、用错了字符集或首尾是符号。本页把 [A-Za-z0-9._-] 字符集、3 ≤ 码点数 ≤ 30、首尾必须是字母数字这三条做成生成时的硬校验,产出的每一条都先在本地过一遍再给你。
二是提前知道「这个名字大概率已经被占了」。不加数字后缀时,本页的词库只有 24 × 29 = 696 种组合;按生日问题算,生成 12 条有约 9.83% 概率出现重复,50 条则是 83.40%。勾上三位数字后空间变成 695304,50 条的撞名概率降到 0.18%——这就是那个开关存在的全部理由。
三是让中文频道名不再撞同一堵墙。「像素工坊」长度 4,符合 3~30 的要求,但它的每个字符都不在 handle 字符集里,所以只能做 YouTube 上的「频道名」而做不了 @handle。本页所有候选都是纯 ASCII,生成阶段就把这件事处理掉了,不用等你提交才被退回。
本页的 YouTube频道名生成器不做这些事:不查 handle 是否真的被占用——那需要请求 YouTube,本页不联网;不生成中文或 emoji 频道名,因为它们过不了 handle 校验;也不替你写频道简介,那属于另一类内容。如果你需要的是可读的中文品牌名而不是 handle,请用品牌名生成器。
原理:字符预算、字符集,以及为什么词库只有 696
第一条规则:长度按 Unicode 码点算,不按 UTF-16 码元算。页面统一用 [...s].length 而不是 s.length。区别只在非 BMP 字符上出现:'𝔘𝔫𝔦𝔠𝔬𝔡𝔢' 的 .length 是 14、码点数是 7,'Pixel🔥Atlas' 的 .length 是 12、码点数是 11。中文与 emoji 都属非 BMP 或需要代理对的那一类,用错口径会让页面显示「10 字符」而提交时被判超长。本页虽然会在生成阶段就把非 [A-Za-z0-9._-] 字符过滤掉,但长度显示仍按码点算,保证中文名和英文名用同一把尺子量。
第二条规则:字符集是白名单,不是黑名单。handle 允许的字符只有 A-Z a-z 0-9 - _ . 六个类别。逐条实测:abc(3 字符)可用、ab(2 字符)长度不足、pixel forge(11 字符)含空格不可用、像素工坊(4 字符)字符集全非法、Pixel🔥Atlas(11 码点)字符集非法、30 个 a 可用、31 个不可用。
第三条规则:首尾必须是字母或数字。-pixel、pixel-、.pixel、pixel. 长度和字符集都合格,但首尾是分隔符,全部不可用。页面在拼接时用「形容词 + 分隔符 + 名词」的结构天然满足这条,但仍保留一次自检,防止将来换词库时翻车。
为什么是两段式而不是四段式,这是算过的。四段式 laboratory-dispersion-daily-042 是 31 字符,已经超了 handle 上限 30。两段式 形容词-名词 全枚举的最短是 10(pixel-forge)、最长 16,加三位数字后最长 20——结构上不可能超限。三段式抽样的长度分布是 11~20、平均 14.4,同样安全。段数越多越容易撞 30 的天花板,这是选两段式的直接原因。
为什么基础空间只有 696 种。词库是 24 个形容词(pixel / lunar / copper / silent / neon / velvet / cosmic / ember / frozen / golden / midnight / echo / glass / iron / paper / quiet / rapid / solar / tidal / urban / violet / wild / amber / azure)× 29 个名词(forge / atlas / bloom / circuit / delta / foundry / garden / harbor / haven / kernel / lantern / ledger / meadow / nectar / orbit / prism / quarry / rhythm / summit / tundra / vault / willow / zenith / anchor / beacon / canyon / domino / engine / fabric)= 696。这个规模对「起名」是够的,对「批量不撞名」不够——所以才需要数字后缀这个开关。
去重用生日问题近似,概率可算。从 N 个候选里抽 k 条,至少重复一次的概率约为 1 − exp(−k² / 2N)。代入 N = 696:k = 1 时 0.07%、k = 5 时 1.78%、k = 10 时 6.93%、k = 12 时 9.83%、k = 30 时 47.62%、k = 100 时 99.92%。加了三位数字后 N = 695304,k = 12 降到 0.010%、k = 50 降到 0.18%、k = 100 是 0.72%。碰撞概率低于 1% 的条件是 k < √(0.02N),不加分号时算出来是 3.7 条——这就是为什么批量取名必须开数字后缀。页面用 Set 按小写去重,最多重试 20 轮补齐,仍不足就如实报「已产出 N 条,未凑满 M 条」,不硬凑。
取样用 crypto 加拒绝采样,理由是消除模偏差。页面调 crypto.getRandomValues(new Uint32Array(1)) 拿一个 32 位无符号整数(值域 0~4294967295),再按下标取余。直接 % n 有模偏差:2^32 mod 24 = 16,于是下标 0~15 各多一个映射,相对偏差为 n / 2^32(n=24 时约 5.6×10⁻⁹)。拒绝采样把上界截到 floor(2^32 / n) × n,超出那段整段丢弃重抽,偏差恒为 0,期望重抽次数小于 1.000001。在 n = 24 或 29 这种规模下偏差小到测不出来,但成本只有几行,同时消除了「下标 0 更容易被抽中」这一可被利用的确定性偏差。旧浏览器或非安全上下文下 crypto 不可用时,页面降级到 Math.random() 并在结果区明确标注随机源——V8 的 Math.random() 用 xorshift128+,只有 128 位内部状态,不是密码学安全的。
大小写不敏感,所以去重要按小写比。YouTube 把 PixelForge 与 pixelforge 视为同一个 handle。页面的 Set 去重键统一转小写,避免「生成了两个自以为不同的名字」。
易混字符只提示不拒绝。0/O、1/l/I、5/S、2/Z、8/B 在语音输入和手写场景里极易打错。pixel-foundry 里的 o 和 0 读音相同,听者分不出。但这不是 YouTube 的规则,所以页面只在表格里标黄提醒,由你决定要不要换。
完整示例(数值仅作演示)
示例条件与页面默认值完全一致:12 条、数字后缀开关打开、连字符、过滤保留词、标出易混字符。逐项核对:
- 前 12 条两段式
handle码点数最短 10(neon-vault)、最长 15(midnight-fabric),全部落在 3~30 内; - 加三位数字后最长 19 字符(
midnight-fabric-971),仍远低于 30; - 字符集校验:12 条全部只含
a-z与-,0 条因字符集被拒; - 首尾校验:12 条全部以字母开头结尾,0 条因首尾被拒;
- 保留词校验:12 条中命中 0 个——本页的 29 个名词里没有任何一个落在 10 个保留词(youtube / google / support / help / official / admin / about / privacy / terms / contact)之内;
- 易混字符:12 条里 11 条含
o/0或l/1,只有midnight-fabric一个完全干净; - 若不勾「加三位数字后缀」,12 条的撞名概率约 9.83%(按 N = 696 算);勾上后同一批降到 0.010%(N = 695304)。页面默认是勾选状态。
这些数字与下方对照表的 12 行逐位一致:第 1 行 pixel-foundry 13 字符、加数字后 17 字符、易混 o/0,第 11 行 midnight-fabric 15 字符、19 字符、无易混字符。切换「加数字后缀」时页面会把随机后缀换掉,但两段式主体不变,所以对照表主体始终稳定可比。
输入范围与对照表
- 生成数量:1~100 的整数。0、负数、小数、字母都会被拒绝并指出是哪个字段。上限 100 不是算力问题——100 次取样是毫秒级——而是超过 100 条时人工已经没法逐个判断哪个更好了。
- 数字后缀:1~999 的整数,可留空。填 0 或 1000 会被拒绝。补零到三位(
7→007)保证拼接后总长稳定,1~999 全枚举长度恒为 3。 - 分隔符:
-、_、.或空。四种都是 handle 合法字符,长度影响都是 1 个字符(空分隔符是 0)。 - 三个复选框可任意组合。全部不勾选时产出的是最原始的笛卡尔积,不去重、不提示。
下面这张表把 12 个候选的两种形态并排列出,可以直接看出加后缀的代价:每个名字长 4 字符(- 加三位数字),而空间从 696 涨到 695304。
| 形态 | 组合空间 | 码点数范围 | 12 条撞名概率 | 50 条撞名概率 |
|---|---|---|---|---|
| 两段式(形容词-名词) | 696 | 10~16 | 9.83% | 83.40% |
| 两段式 + 三位数字 | 695304 | 14~20 | 0.010% | 0.180% |
| 三段式(+后缀词) | 20184 | 11~22 | 0.36% | 6.01% |
| 四段式(对照,不可用) | 696 | 最长 31 | 超 handle 上限 30 | |
第二行的 0.010% 是把 N 换成 695304 后的结果。第三行是另一条路:把后缀做成词库里的第三个词(也取 29 个),空间是 696 × 29 = 20184,12 条概率 0.36%、50 条 6.01%——比纯数字方案差 34 倍,但比不处理强得多。本页的三位数字是随机而非词库的一部分,它只扩空间、不参与语义组合,所以要靠勾选开关而不是换词库。
边界与精度说明
- 数量上限 100 与整数上限。JavaScript 的安全整数是 253 − 1 = 9007199254740991,本页最大生成量 100 与它相差 9.01×1013 倍,不存在计数或下标溢出。取样用的
Uint32Array值域 232 = 4294967296 小于安全整数上限,所以getRandomValues填入的值也是无损的。 - 码点数与码元数的差只出现在非 BMP 字符上。实测
'PixelForge'与'像素工坊'、'Pixel工坊'、'café'的两种长度完全一致(分别是 10、4、7、4),只有'𝔘𝔫𝔦𝔠𝔬𝔡𝔢'(14 vs 7)和'Pixel🔥Atlas'(12 vs 11)不一致。所以中文名按码点算不会被多算,但 emoji 会被算成两倍——页面的做法是直接在生成阶段过滤,不让 emoji 进来。 - 字符集过滤发生在拼接之前,不在之后。词库里全是 ASCII,理论上不需要过滤;过滤代码是为了防御:如果将来有人往词库里加了中文或 emoji,页面会剔掉这些字符并在结果区报告剔了几个,而不是产出一个注定被拒的名字。
- 去重最多 20 轮,超了就如实报告。不加分号时生成 100 条,理论上有 99.92% 概率撞名,20 轮重试往往补不齐。页面会显示「已产出 63 条,未凑满 100 条」并建议你打开数字后缀开关,而不是悄悄给你一份带重复的列表。
- 跨浏览器一致性。取样用的是
crypto.getRandomValues,它由 Web Cryptography API(W3C 推荐标准)定义,各浏览器实现都走操作系统的 CSPRNG,同一时刻的输出不可预测但不可复现。想要「同一种子出同一批名字」必须自带 PRNG(如 Mulberry32,32 位状态、周期 232),本页不提供种子输入——那会让用户误以为这是抽奖工具。 - 本页不查重名,只算概率。YouTube 没有公开的 handle 可用性查询接口,任何声称能「实时查询 handle 是否可注册」的网页都做不到——它只能生成候选并让你自己去试。本页的撞名概率是组合数学算出来的先验估计,与你账号的主题领域、订阅量无关。
常见问题
为什么生成的都不是中文名?
因为中文过不了 handle 的字符集。「像素工坊」长度 4,符合 3~30 的要求,但每个字符都不在 [A-Za-z0-9._-] 里,只能做频道显示名(上限 100 字符)而做不了 @handle。想要中文品牌名请用品牌名生成器,它不受这条限制。
一次生成 50 个真的有必要吗?
不加数字后缀时没必要,因为 50 条里有 83.40% 概率出现重复,你实际拿到的大约是 30~35 个不同的。打开三位数字后缀,同样的 50 条撞名概率降到 0.18%,这才是批量取名的正确用法。12 条是个更实用的批量——够挑选,又不至于让人挑花眼;它的 9.83% 撞名概率也远低于 50 条的 83.40%。
连字符、下划线、点号、无分隔,选哪个?
连字符。四个都是 handle 合法字符,差别只在可读性:pixel-forge 一眼看出断词在哪,pixelforge 完全看不出,pixel_forge 的下划线在部分字体里和空格难分辨,pixel.forge 的点号最容易被当成扩展名省略。口述名字时连字符也最不容易被听错。
标了「易混字符」的名字是不是不能用?
能用。易混字符(0/O、1/l/I、5/S、2/Z、8/B)不是 YouTube 的规则,只是输入体验问题——语音输入和手写时容易打错。页面只标黄不拒绝,因为是否值得为可读性换一个词是你的判断。示例里 12 条有 11 条含易混字符,midnight-fabric 是唯一干净的,这也说明在这个词库规模下「完全避开易混字符」本来就不容易。
点两次「生成频道名」,结果会一样吗?
不一样,而且这是设计如此。取样走 crypto.getRandomValues,每次都是新的随机源,没有种子可复现。这正是你需要的:起名要的就是每次不同。代价是如果你看到一批好名字想「只要刚才那批」,页面没有回溯功能——但你可以先复制走再点重新生成。
数量填 0 或 150 会怎样?
都会被拒绝并指出字段:「生成数量」是「0」,只接受 1~100 的整数。150 属于超上限,页面会告诉你上限是 100,并说明这不是算力限制而是人工已经挑不过来。
为什么有的名字被标成不合格?我要怎么改?
被拒只有三种原因:字符集(含 [A-Za-z0-9._-] 之外的字符)、码点数不在 3~30、首尾不是字母数字。本页的词库全是 ASCII 且结构固定,正常情况下 0 条被拒。如果你看到被拒的记录,说明词库被改过或分隔符选了异常值——把分隔符切回连字符再试一次。
生成的名字会传到 YouTube 去查重名吗?
不会,也不会上传任何东西。全部计算在当前页面完成,只调用 crypto.getRandomValues 和字符串操作,没有网络请求,也不写 Cookie 或 localStorage。你可以在开发者工具的 Network 面板里连点几次「生成频道名」,面板始终是空的。