TL;DR, Quick Answer
7 min readThe YouTube Data API caps a video description at 5000 bytes, a title at 100 characters and the entire tag list at 500 characters. Bytes and characters are the same number only for plain ASCII text, so a Japanese or emoji-heavy description hits the ceiling at roughly 1666 characters instead of 5000. YouTube's own Help Center states the description limit as 5,000 characters, which is the wrong unit and the reason most articles repeat it.
What is the YouTube description character limit?
Google's YouTube Data API sets the YouTube description character limit at 5000 bytes, not 5000 characters, and in the same object caps the video title at 100 characters and the full tag list at 500 characters. The reference page for the videos resource states it directly: "The video's description. The property value has a maximum length of 5000 bytes and may contain all valid UTF-8 characters except < and >." Two fields on one object, two different units.
That single word changes the answer for anyone writing in a non-Latin script or using emoji. A byte measures storage, a character measures text. UTF-8 encodes an ASCII letter in one byte and a Japanese character in three, so the two numbers diverge the moment your description stops being plain English.
| Field | Documented limit | Unit | API property |
|---|---|---|---|
| Video title | 100 | characters | snippet.title |
| Video description | 5000 | bytes | snippet.description |
| All tags combined | 500 | characters | snippet.tags[] |
Source: the YouTube Data API v3 reference for the videos resource, read on 10 September 2026.
Why does YouTube count the description in bytes?
YouTube counts the description in bytes because the field is validated against its stored UTF-8 encoding, not against a rendered character count. UTF-8 is variable-width: it spends one byte on the original ASCII range, two on accented Latin, Cyrillic, Greek, Hebrew and Arabic, three on Chinese, Japanese, Korean and Devanagari, and four on the emoji planes. The API measures the size of the encoded string. Your text editor measures something else.
It is the same trap the AT Protocol documents for Bluesky facet byteStart and byteEnd offsets, and the same one Meta hits when Threads counts an emoji as its UTF-8 byte length. Count the encoded bytes before you submit, not the characters your editor reports.
How many characters do you actually get in a description?
You get 5000 characters only if every character in the description is ASCII. Divide the 5000 byte budget by the per-character cost of your script to get the real ceiling.
bytes = (1 x ascii_chars) + (2 x two_byte_chars) + (3 x three_byte_chars) + (4 x four_byte_chars)
| Content | Example | Bytes per character | Characters in 5000 bytes |
|---|---|---|---|
| ASCII letters, digits, spaces, punctuation | a | 1 | 5000 |
| Accented Latin, Cyrillic, Greek, Arabic, Hebrew | д | 2 | 2500 |
| Chinese, Japanese, Korean, Devanagari | 動 | 3 | 1666 |
| Emoji in the supplementary planes | 🔥 | 4 | 1250 |
Composed emoji cost more than one code point. A thumbs up with a skin tone modifier is two code points at four bytes each, so 👍🏽 costs 8 bytes. A four-person family emoji is four emoji joined by three zero width joiners, and each joiner is a three-byte character, so 👨👩👧👦 costs 25 bytes for one glyph the reader sees as a single image.

Can a description under 5000 characters still be rejected?
Yes, and here is the arithmetic. Take a Japanese cooking channel whose description holds 1,200 Japanese characters of recipe notes, 1,100 ASCII characters of timestamps and URLs, and 40 emoji.
(1200 x 3) + (1100 x 1) + (40 x 4) = 3600 + 1100 + 160 = 4860 bytes
That description is 2,340 characters long and 4,860 bytes, so it uploads. Add 47 more Japanese characters and it becomes 2,387 characters and 5,001 bytes, one byte over the ceiling. The API rejects a description at 2,387 characters, less than half the number the creator was told to aim for. The rejection arrives as invalidDescription with HTTP 400 and the message "The request metadata specifies an invalid video description," which names no length and no unit.
- 1,200 Japanese characters
- 1,100 ASCII characters
- 40 emoji
- Uploads successfully
- 47 more Japanese characters added
- One byte over the 5000 byte ceiling
- Rejected with invalidDescription, HTTP 400
Does YouTube's Help Center agree with the API?
No. YouTube's Help Center article on uploading videos states "Video descriptions have a character limit of 5,000 characters and cannot include invalid characters," which uses the wrong unit for the same field the API documents in bytes. The title figure matches across both pages at 100 characters, so the disagreement is limited to the description.
Treat the API reference as the authority, because it describes the validator that accepts or rejects your upload. In Latin script without emoji the two documents give the same practical answer and the discrepancy never surfaces. In Japanese, Hindi, Arabic or Russian, the Help Center number overstates your budget by two to three times.
Where does YouTube truncate the description on the watch page?
YouTube does not publish the point at which the watch page truncates a description. The 5000 byte figure is a storage limit enforced at upload, and the collapsed preview above the "...more" control is a separate layout behavior that YouTube documents nowhere. Neither the Data API reference nor the Help Center article on adding a description states a character count, a byte count or a line count for the collapsed view.
The mechanism explains why no fixed number exists. The watch page renders the description inside a container whose height is set by the surrounding layout, and the amount of text visible before the reader expands it moves with viewport width, font size and the rows of metadata sitting above it. A count that holds on a 27 inch desktop does not hold on a phone in portrait. Numbers circulate in SEO articles as though Google published them. Google has not.
The fix does not depend on the cut point: put the link, the call to action and the sentence you need read into the opening lines, then let the rest run long. Formatting choices in that opening block matter too, and YouTube's text formatting rules govern what renders and what shows up as literal characters.
AdaptlyPost
Start 7-Day FREE Trial
All-platform analytics
Social Inbox
AI-powered assistant
What counts against the 500 character tag limit?
The 500 character limit applies to the tag list as a whole, not to each tag. The API documents it on the array property: "A list of keyword tags associated with the video. Tags may contain spaces. The property value has a maximum length of 500 characters." Twenty tags averaging 25 characters exhausts the budget, and a single 60 character long-tail phrase takes an eighth of it on its own.
YouTube does not document whether the separators between tags count toward the 500, so the safe assumption is that they do and the safe target is a few characters under the ceiling. Note the unit again: tags are counted in characters while the description beside them is counted in bytes, so a non-Latin tag set behaves differently from a non-Latin description. Other networks scope their limits differently again, from the TikTok caption limit measured in UTF-16 runes to the Instagram API alt text character limit.

Where adaptlypost fits
adaptlypost publishes to YouTube through the same Data API these limits belong to, so the 5000 byte ceiling applies there exactly as it applies to a direct upload. The YouTube video scheduler queues uploads with their titles, descriptions and tags attached, and the AI caption writer drafts the description text you then check against the byte budget. Nothing in a scheduling tool raises a platform ceiling; the limits above are Google's and they hold whichever client sends the request.
Frequently asked questions
Is the YouTube description limit 5000 characters or 5000 bytes?
The YouTube Data API documents it as 5000 bytes on the snippet.description property of the videos resource. YouTube's Help Center states 5,000 characters for the same field. The API reference is the one that matches the validator, so treat the limit as 5000 bytes.
How many Japanese or Chinese characters fit in a YouTube description?
UTF-8 encodes most Chinese, Japanese and Korean characters in three bytes, which puts the ceiling at 1,666 characters of pure CJK text. Mixed content lands between that and 5,000 depending on how much ASCII you include. Timestamps, URLs and Latin hashtags cost one byte each and stretch the budget.
Does an emoji count as one character in a YouTube description?
No. Emoji in the supplementary planes cost four bytes each, a skin tone modifier adds another four, and each zero width joiner in a composed emoji adds three. A four-person family emoji costs 25 bytes against the 5000 byte budget while occupying one glyph on screen.
What is the YouTube video title character limit?
The API caps snippet.title at 100 characters, and it states that limit in characters, not bytes. The same property forbids the < and > characters. YouTube's Help Center gives the identical 100 figure, so this field carries no unit disagreement.
How many tags can a YouTube video have?
YouTube caps the total length of the tag list at 500 characters and documents no cap on the number of tags. Twenty 25 character tags fill the budget, and so do forty 12 character tags. YouTube does not document whether separators count toward the 500.
Where does YouTube cut off the description before "...more"?
YouTube publishes no truncation point. The collapsed height is a layout outcome that shifts with viewport width, font size and the metadata rows above the description, so the visible portion differs between a desktop browser and a phone. Write the important lines first instead of targeting a character count nobody at Google has confirmed.
What error message appears when a YouTube description exceeds the byte limit?
The API rejects the upload with an invalidDescription error and an HTTP 400 status. The message reads "The request metadata specifies an invalid video description," and it names neither the length nor the unit that failed. Debugging the rejection requires already knowing the field is measured in bytes.
Do the separators between YouTube tags count toward the 500 character limit?
YouTube does not document whether the commas or spaces between tags on snippet.tags[] count toward the 500 character limit. The safe assumption is that they do, so the safe target sits a few characters under the ceiling rather than exactly at it. Twenty tags averaging 25 characters already fill the budget without adding any separators.
Does adaptlypost's AI caption writer check a description against the byte limit automatically?
No. adaptlypost caps a YouTube description at 5000 characters in the composer, while the YouTube Data API enforces its ceiling in bytes, so a draft from the AI caption writer can pass the character cap and still be rejected. Text in accented Latin, Cyrillic or CJK scripts runs out of bytes before it runs out of characters. Count bytes before you schedule a long description that is not in English, since no scheduling tool raises the limit Google sets.
How many characters fit in a YouTube description written in Arabic, Hebrew or Russian?
These scripts fall in UTF-8's two byte range alongside accented Latin and Greek, which puts the practical ceiling at 2500 characters instead of 5000. That is half the budget the Help Center's character count implies. Mixing in ASCII text such as URLs or timestamps stretches the total again, since each of those characters costs one byte instead of two.
Put this into practice with AdaptlyPost
Was This Article Helpful?
Let us know what you think!
See us more often in Google
One click marks AdaptlyPost as a preferred source, so our articles sit higher in your Top Stories, AI Mode, and AI Overviews.
Before you go...
AdaptlyPost
Schedule your content across all platforms
Manage all your social media accounts in one place with AdaptlyPost.
All-platform analytics
Social Inbox
AI-powered assistant
Related Glossary Terms


The TikTok AI Generated Label Is Two Different Labels
The TikTok AI generated label comes two ways: a creator label you apply with is_aigc, and an auto label from AI effects or C2PA that you cannot remove.


Why the TikTok Caption Character Limit Is Measured in UTF-16 Runes
The TikTok caption character limit is 2200 UTF-16 runes for video and 90 for a photo title. Runes are not characters, and one emoji can cost eleven.


What Instagram's content_publishing_limit Endpoint Returns
Instagram's content_publishing_limit endpoint returns quota_usage plus a config block holding quota_total 50 and quota_duration 86400 seconds.
Related Articles


What the instagram_business_content_publish Scope Actually Grants
The instagram_business_content_publish scope lets an app create organic Instagram posts, and it depends on instagram_business_basic on every call.


How a Bluesky Feed Generator Works, From Lexicon to Live Feed
A Bluesky feed generator is one HTTPS service answering one XRPC query. The lexicons, the DID document entry, the JWT, and the gaps in the docs.


Why the Bluesky Image Size Limit Is 2,000,000 Bytes
The Bluesky image size limit is 2,000,000 bytes per post image, set by maxSize in the images lexicon. Avatars and banners stop at 1,000,000 bytes.

