sociallinks.dev

博客 / 对比

用户名与用户 ID:为什么社交账号名会变,而 ID 不会

每个社交账号都有两个身份。用户名是人们输入、标记、放进 URL 里的公开账号名。用户 ID 是平台在账号创建时分配的内部数字或字符串。大多数人只看得到账号名,所以大多数电子表格和 CRM 存的也是账号名。这在创作者改名之前都没问题,一旦改名,那一行记录就会悄无声息地指向空处,或者指向另一个人。本指南在各主要平台上对比这两者,并介绍如何存储创作者信息,让改名不会破坏你的数据。

简短回答

用户名是给人看的,通常可以由账号主人修改。用户 ID 是给机器用的,会伴随账号的整个生命周期。如果你下个月还需要认出同一个账号,就存 ID。账号名也要保留,因为它是你展示给别人看、用来搜索的东西,但要把它当作一个可能过时的标签。

用户名(账号名)用户 ID
是什么主页 URL 中的公开名称,例如 @sophiemiller平台在注册时分配的数字或字符串
由谁选定账号主人平台
能否更改能,在各平台的限制范围内不能,它始终属于该账号
能否被重复使用能,被释放的账号名可能被别人注册不能,它永远不会分配给其他账号
在哪里能看到主页、URL、提及、标记API、导出数据、部分 URL、网页源代码
适合用于展示、搜索、外联数据库主键、去重、长期追踪

各平台如何处理

各平台的规则不同,而且会变。下面的限制来自撰写本文时各平台的帮助页面。在构建任何依赖确切数字的功能之前,先查看对应的链接页面。

平台账号名和 URL稳定 ID账号名多久能改一次
YouTubeyoutube.com/@handle,较早的频道还有旧版 /c/name 和 /user/name URL以 UC 开头的频道 ID,见于 youtube.com/channel/UC...14 天内可改两次,见 YouTube 帮助
Xx.com/screen_name数字用户 ID,API 以字符串形式返回可在设置中更改;X 的开发者文档称用户名(screen name)唯一,但可能变化
TikToktiktok.com/@username内部用户 ID;官方 API 返回按应用区分的 ID每 30 天一次,见 TikTok 支持
Instagraminstagram.com/username数字账号 ID,通过 Meta 面向专业账号的 API 提供可在“编辑主页”中更改;应用会显示改过几次
Facebook个人主页和公共主页都用 facebook.com/username数字个人主页 ID 或公共主页 ID可以更改;Facebook 提醒你可能无法拿回旧用户名
LinkedInlinkedin.com/in/custom-url内部会员 ID,不在主页上显示六个月内最多五次,见 LinkedIn 帮助

YouTube:账号名、频道 ID 和旧版 URL

YouTube 的标识符最多。频道 ID 是 youtube.com/channel/UC... 中以 UC 开头的字符串,YouTube 将其描述为频道 URL 中的唯一标识符。账号名(handle)是 @name 形式,YouTube 的账号名概述指出,账号名会自动成为频道的 URL。较早的频道可能还有 youtube.com/c/Name 这样的自定义 URL,现在已无法创建或更改,以及 youtube.com/user/Name 这样的旧版用户名 URL,也无法更改。根据 YouTube 的频道 URL 页面,这些旧版 URL 仍然有效,并会重定向到账号名 URL。

要找到频道 ID,打开频道,查看其简介面板,用分享选项复制频道 ID,或者找 /channel/UC... 形式的 URL。在所有形式中,只有频道 ID 保证不会变。

X:用户名和数字 ID

在 X 上,人们看到的是 @screen_name,而每个账号还有一个数字 ID。X 的开发者文档明确指出,ID 永远不变,而用户名可以变,并建议使用 ID 的字符串形式,因为这个数字对某些编程语言来说可能太大。API 可以按用户名查询账号,所以你可以一次性把账号名转换为 ID 并保存结果。

TikTok:用户名和按应用区分的 ID

TikTok 用户名出现在 tiktok.com/@username 中,根据 TikTok 支持页面,每 30 天可以更改一次。更改后主页链接也会随之改变。显示名称是另一回事,并不是账号名。如果你通过创作者登录使用 TikTok 的官方 API,要注意:根据 TikTok 的开发者文档,它返回的 open_id 只在你的应用内唯一,而 union_id 在同一开发者的多个应用之间保持不变。在你自己的系统中做记录时,这两者都比用户名更稳定。

Instagram、Facebook 和 LinkedIn

Instagram 用户名位于 instagram.com/username 的末尾,可以在“编辑主页”中更改。Instagram 的关于此账号页面会显示账号的用户名改过几次,但不会显示旧名字。在账号名背后,每个账号都有一个数字 ID,Meta 的 API 对商家账号和创作者账号使用这个 ID。Facebook 的个人主页和公共主页既有 URL 中的用户名,也有数字 ID,Facebook 的帮助页面提醒,用户名一旦更改,你可能无法再拿回来。在 LinkedIn 上,linkedin.com/in/... 中的自定义部分六个月内最多可改五次,除非会员主动解除关联,之前的 URL 会在六个月内继续指向该会员。

为什么数据库应该以 ID 作为主键

主键只有一个任务:永远指向同一个东西。账号名在三个方面过不了这一关。

一个实用的数据结构是每个账号一行,以平台加平台 ID 作为唯一键,账号名、显示名称和主页 URL 作为需要定期刷新的普通字段。加一个 handle_checked_at 日期,让你知道账号名有多新,再建一张历史表保存过去的账号名,这样旧的提及、合同和报告仍然能匹配上。

字段示例作用
platformyoutube唯一键的一部分
platform_idUCxxxxxxxxxxxxxxxxxxxxxx唯一键的一部分;永不修改
handle@sophiemiller用于展示和搜索;定期刷新
profile_urlhttps://www.youtube.com/@sophiemiller由账号名或 ID 生成
handle_checked_at2026-10-23账号名最近一次确认的时间
creator_id你自己的内部 ID把同一个人在各平台上的账号归到一起

如果你目前只有账号名,仍然可以把它们规范化,让重复项更容易被发现。下面这样的表格公式会把账号名转为小写,并去掉 @ 和空格。它解决不了改名问题,但能避免同一个账号出现两次。

Google Sheets:规范化 A2 中的账号名

=LOWER(TRIM(SUBSTITUTE(A2, "@", "")))

创作者更改账号名时会出什么问题

账号名一变,所有基于旧账号名搭建的东西都面临风险。以下是团队事后常发现的问题:

如何找回改名后的账号

如果你保存了 ID,找回只需查询一次。如果你只保存了账号名,就按以下步骤操作。

  1. Step 1如果有 ID,就按 ID 查询账号

    使用平台自己的 API,或者接受 ID 的 URL,例如 youtube.com/channel/UC...。改名后 ID 仍然有效,并能给出当前的账号名。

  2. Step 2试试旧 URL

    打开保存的链接。YouTube 旧版 URL 和最近更改的账号名可能会重定向,在某些平台上,旧账号名在更改后会被保留一小段时间。如果页面现在显示的是不同的内容,就假定账号名已被别人使用。

  3. Step 3顺着创作者的其他账号找

    打开一个你确定仍然正确的平台,查看简介、主页链接页(link-in-bio)或个人网站上的链接。在一个平台上改名的创作者,通常会更新其他平台上指向它的链接。

  4. Step 4搜索名字和内容

    搜索显示名称、最近一条视频的标题,或者简介中的一句独特表述。通过相同的面孔、内容和发帖历史,以及指回某个已知账号的链接来确认匹配。

  5. Step 5保存 ID 并记录旧账号名

    确认之后,保存平台 ID,更新账号名,并把旧账号名移到历史表中,这样之前的记录仍然能匹配上。

对于单个 YouTube 频道,你可以用 YouTube Data API 的 channels.list 方法把账号名转换为频道 ID。该方法接受 forHandle 参数(旧版用户名用 forUsername),每次调用消耗一个配额单位。

Node.js

// Resolve a YouTube handle to its stable channel ID.
const handle = "@sophiemiller";
const url = new URL("https://www.googleapis.com/youtube/v3/channels");
url.searchParams.set("part", "id,snippet");
url.searchParams.set("forHandle", handle);
url.searchParams.set("key", process.env.YOUTUBE_API_KEY);

const res = await fetch(url);
const data = await res.json();
const channel = data.items?.[0];
console.log(channel ? channel.id : "No channel for that handle"); // UC...

什么时候用哪一个

两者你都需要,只是用途不同。一条简单的规则:用 ID 识别,用账号名沟通。

任务使用原因
数据库或 CRM 的主键用户 ID它永远不会改变,也不会被重复使用
给创作者名单去重先用用户 ID,再用规范化后的账号名ID 能识别改名;规范化的账号名能识别格式差异
给人看的需求简报、邮件和报告账号名和主页 URL人们认得账号名,不认得数字
合同账号名、URL 和 ID即使改名后也能描述清楚是哪个账号
社媒监听和提及提醒账号名,定期刷新提及使用的是当前账号名
追踪几个月的增长用户 ID保持一条连续的历史记录

如果你手动收集创作者,最重要的习惯是在添加某人的那一刻就记下 ID,因为那时你最确定这是正确的账号。事后再补,既慢又没那么可靠。

保持跨平台记录的时效性

ID 解决了单个平台内的改名问题,但一位创作者通常在多个平台上有多个账号。把它们归到同一个内部创作者 ID 下,并定期重新核查账号名,才能让创作者数据库保持有用。如果你从一个主页链接出发,需要找到该创作者的其他账号,sociallinks.dev 可以帮你找到,并通过 API 返回匹配结果,然后你就可以按各平台的 ID 保存下来。

常见问题

用户名和用户 ID 有什么区别?

用户名是账号主人选定的公开账号名,通常可以更改。用户 ID 是平台在账号创建时分配的标识符,会伴随账号的整个生命周期,改名之后也不变。

YouTube 频道 ID 会变吗?

不会。频道 ID,也就是 youtube.com/channel/UC... 中以 UC 开头的字符串,是频道的唯一标识符。账号名和显示名称可以更改,旧版自定义 URL 会重定向,但频道 ID 保持不变。

TikTok 用户名多久能改一次?

TikTok 支持页面表示,用户名每 30 天可以更改一次。更改后主页链接也会改变,所以保存的指向旧用户名的链接可能会失效。

别人能注册创作者用过的旧账号名吗?

能。在大多数平台上,被释放的账号名最终都可能被其他账号注册。有些平台会先保留一小段时间。这就是为什么存在 CRM 里的账号名最后可能指向另一个人。

如何通过用户名找到 X 用户 ID?

使用 X API 的按用户名查询用户功能,它会返回账号的数字 ID。按照 X 开发者文档的建议,保存 ID 的字符串形式,因为这个数字对某些编程语言来说可能太大。

如果有了 ID,还需要保存账号名吗?

需要。账号名是人们认得的东西,也是外联和搜索时需要的。把它们作为可刷新的字段保存,并记录最近核查日期,同时把旧账号名保存在历史记录里,这样之前的记录仍然能匹配上。

查找创作者的账号