Считать эмодзи за один символ
Так делает большинство счётчиков, но не Threads. Пост, который обычный счётчик оценил в 495, в Threads может оказаться далеко за 500.
Threads даёт текстовому посту 500 символов, но эмодзи — это не один символ: он стоит столько, сколько занимает байт. Палец вверх — 4, красное сердце — 6, семья — 18. Вставьте пост и посмотрите на его длину глазами Threads.
0 / 500 осталось 500
Пробный период бесплатно. После регистрации или входа текст откроется в редакторе новым постом, и ничего не сохранится и не опубликуется, пока вы сами этого не решите.
Threads скоро появится в calmposts. А пока пост может подождать в черновиках.
Пост с несколькими эмодзи, нумерованным списком и ссылкой. Посмотрите на строку Threads: разницу дают эмодзи.
Три вещи, которые мы поняли, пока делали планировщик 🧵👇 1. Тред дочитывают до конца, если первая строка ясна. 2. Нумерации никто не хватился. 3. ❤️ стоит больше символов, чем кажется. Подробнее: calmposts.com/blog
| Соцсеть | Счёт | Уйдёт как |
|---|---|---|
| X | 222 / 280 | 1 пост |
| Bluesky | 214 / 300 | 1 пост |
| Threads | 225 / 500 | 1 пост |
| 214 / 3 000 | 1 пост |
Документация Meta к Threads API говорит об этом коротко: текстовый пост ограничен 500 символами, а эмодзи считаются по числу их байт в UTF-8. Буквы, цифры, пробелы и знаки препинания стоят по 1. Одиночный эмодзи обычно стоит 3 или 4, а собранный из нескольких частей — заметно больше.
Так, 👍 стоит 4: он занимает 4 байта. 👍🏽, палец вверх с оттенком кожи, — это два символа в одном, и он стоит 8. ❤️, красное сердце, которое вставляет большинство клавиатур, — это сердце и невидимый селектор варианта, всего 6. Флаг — две региональные буквы по 4 байта, то есть 8, а семья из трёх человек, склеенных соединителями нулевой ширины, — 18.
Всё, что не эмодзи, считается так, как вы это видите, — как в Bluesky: китайский или японский иероглиф — 1, кириллическая буква — 1, буква с диакритикой — 1, набрана ли она одним символом или буквой и надстрочным знаком. Перед подсчётом calmposts приводит текст к NFC.
Пост, где в основном слова, это правило почти не замечает. А пост, который держится на эмодзи, — замечает: десять эмодзи с оттенком кожи занимают 80 из 500, а пять флагов в конце поста о путешествии — 40.
Счётчик показывает счёт Threads, а под ним — символы на вид. Разница между двумя числами — это цена ваших эмодзи. Если пост чуть длиннее лимита, дешевле всего сократить именно эмодзи.
Возьмём пост из 400 букв и двенадцати эмодзи «палец вверх» с оттенком кожи. Bluesky насчитает 412: там каждый эмодзи — один символ. X насчитает 424: там эмодзи весит 2, и это всё равно больше 280. Threads насчитает 496: каждый такой эмодзи занимает 8 байт. Пост ещё помещается — с запасом в четыре символа.
Без эмодзи расклад другой: 500 в Threads — самый большой лимит из трёх соцсетей, где есть треды, и текст, который в него помещается, в X и Bluesky часто занимает два поста. calmposts считает каждый канал по правилам его соцсети прямо во время набора, так что разницу вы видите до сохранения.
Ссылка стоит столько символов, сколько в ней есть: Threads не сокращает ссылки при подсчёте, как это делает X. Голый домен вроде calmposts.com — 13 символов, длинный адрес с UTM-метками — сколько в нём символов.
Кроме того, Threads не принимает пост, где больше пяти разных ссылок. calmposts проверяет это до того, как что-либо отправить в Meta, а счётчик предупреждает, как только в тексте появляется шестая.
Пробел — 1, перенос строки — 1, так что пустая строка между абзацами стоит 2. @упоминания и хештеги считаются как написаны, как и любой другой текст.
Нумерованный список стоит ровно столько, сколько видно: «1. » — три символа, цифра, точка и пробел. Эмодзи вместо маркеров стоят своих байт, и список из пяти пунктов с ✅ тратит на одни только значки 15 символов.
В Threads тред — то, что и написано в названии: пост, а за ним ответы на него с того же аккаунта. Длинный текст calmposts отправляет именно так — каждая часть отвечает на предыдущую, до 25 частей, и у каждой свои 500.
Meta разрешает одному профилю публиковать через API 250 постов за 24 часа, и каждая часть треда — один из них. Тред из десяти частей в день укладывается в это с большим запасом.
Счётчик — это код самого редактора calmposts, собранный для этой страницы, поэтому счёт здесь тот же, что показывает редактор и проверяет сервер.
Каждую цифру посчитал код calmposts для Threads.
| Текст | Что это | Счёт |
|---|---|---|
Hello | Латиница | 5 |
你好 | Иероглифы: по 1 | 2 |
👍 | Эмодзи: 4 байта, стоит 4 | 4 |
👍🏽 | С оттенком кожи: 8 | 8 |
❤️ | Красное сердце с селектором варианта | 6 |
🇩🇪 | Флаг: две региональные буквы | 8 |
👨👩👧 | Семья: три человека, два соединителя | 18 |
🧵👇 | Два эмодзи | 8 |
https://example.com/a/very/long/path?with=query | Длинная ссылка, целиком | 47 |
calmposts.com | Голый домен, целиком | 13 |
… | Многоточие: не эмодзи, 1 | 1 |
one
two | Перенос строки — 1 | 7 |
Сколько помещается в один пост в каждой соцсети, куда публикует calmposts, и как там считаются символы.
| Соцсеть | Один пост | Как считаются символы | Ссылки | Треды |
|---|---|---|---|---|
| X | 280 символов; 25 000 с X Premium | По весу: большинство букв — 1, эмодзи и иероглифы — 2 | По 23, какой бы длины ни была ссылка | Цепочка ответов, в calmposts до 25 постов |
| Bluesky | 300 символов и 3 000 байт | Графемы: каждый видимый символ — 1 | Как написана, каждый символ | Цепочка ответов, в calmposts до 25 постов |
| Threads | 500 символов | Графемы, но эмодзи считается по байтам UTF-8 | Как написана; не больше 5 разных ссылок | Цепочка ответов, в calmposts до 25 постов |
| 3 000 символов | Графемы: каждый видимый символ — 1 | Как написана, каждый символ | Нет: тред уходит одним постом |
Так делает большинство счётчиков, но не Threads. Пост, который обычный счётчик оценил в 495, в Threads может оказаться далеко за 500.
Каждый флаг стоит 8, каждое ❤️ — 6. Ставьте их там, где они что-то говорят, а не рядом в конце поста.
Threads не принимает пост, где больше пяти разных ссылок. Остальные перенесите в ответ или в следующую часть треда.
В X ссылка стоит 23, а эмодзи — 2. В Threads ссылка считается целиком, а эмодзи — по байтам, так что у одного текста в двух соцсетях разная длина.
500 — это лимит, а не цель. Сплошной текст трудно читать с телефона; тред из трёх постов, в каждом из которых одна мысль, часто читается лучше.
Threads не принимает текстовый пост длиннее 500 символов, и calmposts такой никогда не отправляет.
Если текст длиннее одного поста Threads, calmposts отправляет его тредом. Редактор режет его на самом сильном разрыве, который помещается в 500, — пустая строка, затем перенос строки, затем конец предложения, затем пробел — и публикует каждую часть ответом на предыдущую. К частям ничего не добавляется.
Перед сохранением вы видите каждую часть с её счётом. Разделитель тредов показывает тот же текст, нарезанный для X и Bluesky, рядом с Threads — так видно, где они расходятся.
500 символов для текстового поста. Буквы, цифры, пробелы и знаки препинания стоят по 1; эмодзи — столько символов, сколько в нём байт UTF-8.
Столько, сколько он весит в UTF-8: 👍 — 4, ❤️ — 6, 👍🏽 — 8, флаг — 8, семья из трёх человек — 18.
Да, целиком. Кроме того, в посте может быть не больше пяти разных ссылок.
Да, как написаны, как и любой другой текст.
Да. Длинный текст уходит цепочкой ответов — до 25 частей по 500 символов. Meta разрешает одному профилю 250 постов за 24 часа через API, и каждая часть считается за один.
Да, это код самого редактора. calmposts проверяет каждый пост для Threads по тому же правилу при сохранении и перед отправкой.
Куда публикует calmposts — через официальный API каждой соцсети — и что он делает в каждой.
Фиксированная цена в месяц и бесплатный пробный период; плата X уже включена.
Планируйте посты и треды из своего кода. API проверяет те же лимиты, что и эти инструменты.
Пусть Claude, ChatGPT или другой ИИ-агент пишет и планирует посты за вас — в тех же лимитах.
calmposts считает пост для каждой соцсети прямо во время набора, превращает длинный текст в тред там, где треды есть, и отправляет каждую часть вовремя через официальные API соцсетей.
Смотреть тарифы