Skip to content

YouTube Oddities

Matthew Wright edited this page Mar 18, 2024 · 58 revisions

This is my place to document things I've found about YouTube and it's API. The examples for some of these may not last forever.

Generally these are not 'issues' but just how YouTube and the API work. Due to these oddities in addition to the behavior of non-oddities I would recommend not to trust any field of the API to 100% be available or as you expect. Always handle the case as if something didn't come back even when you expect it to.

Comments missing channel information

https://www.youtube.com/watch?v=aWAod8ZmAuc&lc=Ugy9fRFjedh7r5c1lZJ4AaABAg

The channel looks blank on the webpage and the API returns no information for it either: blank authorDisplayName, blank authorChannelUrl, and the default authorProfileImageUrl.

{
  "kind": "youtube#comment",
  "etag": "Bs_q22LbPeL3w2zGepNLVIBvzD8",
  "id": "Ugy9fRFjedh7r5c1lZJ4AaABAg",
  "snippet": {
    "textDisplay": "Look it is work...thanks !",
    "textOriginal": "Look it is work...thanks !",
    "authorDisplayName": "",
    "authorProfileImageUrl": "https://yt3.ggpht.com/a/default-user=s48",
    "authorChannelUrl": "",
    "canRate": true,
    "viewerRating": "none",
    "likeCount": 0,
    "publishedAt": "2018-04-11T15:02:51Z",
    "updatedAt": "2018-04-11T15:02:51Z"
  }
}

comments.list API Explorer

Channels with extremely long names

The limit for channel titles as of today is 30 characters or maybe even 50. However, this limit can be broken by modifying client side validation in one of YouTube's features.

https://www.youtube.com/channel/UChLNLQ6r-aGrIFWo_1A9tKQ (383 characters)

{
  "title": "JACKSEPICYOUTUBECHANNELFULLOFFUNTIMESANDFUNHIRICKXHASNOTHINGONMEIAMTHESUPERIORCHANNELIHAVEMORECHARACTERSTHANALLOFJACKSYOUTUBECHANNELSCOMBINEDHAHAHAHAIHAVEMORECHARACTERSTHANJACKSUCKSATLIFEJACKSUCKSATSTUFFJACKMASSEYWELSHJACKSUCKSATGEOGRAPHYJACKSUCKSATCLIPSSAMSMELLSOFAPRICOTSJACKSUCKSATPOPUPPIRATEETCETCIMAGINETHISONAPLAYBUTTONJESUSCHRISTBTWPLEASESUBSCRIBETHANKYOUVERYMUCHHIRICKXxXxXX",
  "description": "hey guys suscribe",
  "publishedAt": "2021-07-10T15:13:12.443555Z",
  "country": "GB"
}

channels.list API Explorer

Other examples using this same trick

Video without a title

Unsure how this is done, a video can have no title at all. It is not a Zero-width space which you can currently use as a title, this is just blank.

{
    "publishedAt": "2010-04-26T13:28:59Z",
    "channelId": "UC2VVIGlxmkQ5hMu-MouLiJw",
    "title": "",
    "description": " "
}

Video with 249 allowed countries

Typically video region restrictions will have some listed in either allowed or blocked. 249 is the current total country count and is equivalent to 'worldwide'.

However, it is possible for 249 countries to appear in the allowed list. It's not clear why this happens as it is the same has having no restriction at all. It seems to occur most frequently with music videos, potentially they had actual blocks at one point and the only way it can be undone is to move everything to allowed?

{ 
  "duration": "PT3M33S", 
  "dimension": "2d", 
  "definition": "hd", 
  "caption": "false", 
  "licensedContent": true, 
  "regionRestriction": { 
    "allowed": [ 
      "AD", "AE", "AF", "AG", "AI", "AL", "AM", "AO", "AQ", "AR", "AS", "AT", "AU", "AW", "AX", 
      "AZ", "BA", "BB", "BD", "BE", "BF", "BG", "BH", "BI", "BJ", "BL", "BM", "BN", "BO", "BQ", 
      "BR", "BS", "BT", "BV", "BW", "BY", "BZ", "CA", "CC", "CD", "CF", "CG", "CH", "CI", "CK", 
      "CL", "CM", "CN", "CO", "CR", "CU", "CV", "CW", "CX", "CY", "CZ", "DE", "DJ", "DK", "DM", 
      "DO", "DZ", "EC", "EE", "EG", "EH", "ER", "ES", "ET", "FI", "FJ", "FK", "FM", "FO", "FR", 
      "GA", "GB", "GD", "GE", "GF", "GG", "GH", "GI", "GL", "GM", "GN", "GP", "GQ", "GR", "GS", 
      "GT", "GU", "GW", "GY", "HK", "HM", "HN", "HR", "HT", "HU", "ID", "IE", "IL", "IM", "IN", 
      "IO", "IQ", "IR", "IS", "IT", "JE", "JM", "JO", "JP", "KE", "KG", "KH", "KI", "KM", "KN", 
      "KP", "KR", "KW", "KY", "KZ", "LA", "LB", "LC", "LI", "LK", "LR", "LS", "LT", "LU", "LV", 
      "LY", "MA", "MC", "MD", "ME", "MF", "MG", "MH", "MK", "ML", "MM", "MN", "MO", "MP", "MQ", 
      "MR", "MS", "MT", "MU", "MV", "MW", "MX", "MY", "MZ", "NA", "NC", "NE", "NF", "NG", "NI", 
      "NL", "NO", "NP", "NR", "NU", "NZ", "OM", "PA", "PE", "PF", "PG", "PH", "PK", "PL", "PM", 
      "PN", "PR", "PS", "PT", "PW", "PY", "QA", "RE", "RO", "RS", "RU", "RW", "SA", "SB", "SC", 
      "SD", "SE", "SG", "SH", "SI", "SJ", "SK", "SL", "SM", "SN", "SO", "SR", "SS", "ST", "SV", 
      "SX", "SY", "SZ", "TC", "TD", "TF", "TG", "TH", "TJ", "TK", "TL", "TM", "TN", "TO", "TR", 
      "TT", "TV", "TW", "TZ", "UA", "UG", "UM", "US", "UY", "UZ", "VA", "VC", "VE", "VG", "VI", 
      "VN", "VU", "WF", "WS", "YE", "YT", "ZA", "ZM", "ZW" 
    ] 
  }, 
  "contentRating": {}, 
  "projection": "rectangular"
}

Old channel, new channel

Interacting with any video from the old channel in the YouTube interface will redirect you back to the new one. The old channel name and reference will never display except in the API.

Also, to get every video in the API as displayed on the new channel you would need both channel ids. Each channel has its own set of videos in the API.

Also interesting to note, when watching a video from the old channel an info icon will appear in the top right that displays the old channel's name on hover.

image

More from YouTube

On the sidebar YouTube under 'More from YouTube' there are several subsections of categorized media. These are 'channels' though they are not really channels but they do have channel ids and urls.

Movies & Shows

In the API it is called "YouTube Movies" but is displayed as "Movies & Shows" everywhere else.

{
  "publishedAt": "2015-06-10T20:32:27Z",
  "channelId": "UClgRkhTL3_hImCAmdLfDE4g",
  "title": "YouTube Movies",
  "description": "YouTube's movies destination featuring the latest new releases, blockbusters and more.",
}

Movies & Shows has a main channel but also has multiple sub channels that redirect back to the main channel.

There is a unique channelId for what seems like every movie though redirects when visited in the browser. Each instance has different localized versions of that particular movie.

Shows however work differently than movies. You can get a show's channelId by querying the videoId of an episode of the show. The channel for these look like channels and have the episodes listed in the videos section. However, these channels never come back in the API.

Show to channel

Shows have their own custom URL pattern with a value that looks like a channelId.

If you transform the SC... to UC... then it is readable like normal channelId. However, as mentioned before, show channels do not come back in the API.

Topic channels

Many channels for Gaming and Music are made as topic channels. The title of topic channels end with " - Topic" and the about links have "Auto generated by YouTube". Videos published by these topic channels (usually only music channels) have comments disabled and the description contains "Auto generated by YouTube." Older videos before they were forced to have comments disabled do have numbers in video.statistics.commentCount but are not accessible.

Music topics:

Gaming topics:

This video is unavailable on this device

Also...

  • We're processing this video. Check back later.
  • This live stream recording is not available.

The actual video is not playable because it is too long. You can still query in the API and view comments. It is not deleted or made private.

The most likely reason for this video in particular is that it is over 3 months long or 100 days.

Various playlists

There are a ton of different playlist ids formats for different purposes with varying degrees of functionality. This page documents it all:

https://wiki.archiveteam.org/index.php/YouTube/Technical_details#Playlists

Custom channel partially doesn't work / extra custom channel value

Sometimes the /c/ url doesn't work but the / url does. Usually both urls work for a custom value and it is unclear why this happens. Unknown if it can be broken the other way around.

However, this channel actually has a different custom value according the the YouTube API. When using that value both url patterns work. It isn't clear how the sbtv url was obtained or setup.

Custom channels and special paths

A quirk with the path recognition, case sensitivity, and custom channels. As long as it matches the lowercase watch it will work like a normal video url. However, when changing the case of watch to anything else it will resolve to a channel with that custom value.

New tab without without a videoId

Another quirk related to the watch url, when navigating to these directly (copy, paste, enter) without a video id it will redirect to the homepage. However, if you middle click to open it as a new tab in your browser it will instead show a video without its id in the url.

The video displayed is unlisted and titled YouTube is not currently available on this device. and its actual url/id is the following:

Its unclear why it does this but it seems to be related to old devices, playlists, and malformed urls.

Channel URL redirect to video instead of channel

Fairly recently spreading thing from YouTube comments where someone tells you to remove the h or c in watch on the current video you are watching.

The link then redirects you to a video by 666.

Speculation for how this works below:

Strange channels

Channels that seem to be broken/glitched in weird ways demonstrated by this video.

Channels:

Video that won't play

A very early YouTube video, 2005, that will not play and always gives an error.

Video that was corrupted by YouTube

A very early YouTube video, 2006, that no longer looks like it should and shows washed out changing color nothing like the original (which was reuploaded and linked in the comments).

Video with the best video id

A video that "won the lottery" in having one of the most funny video ids possible. There are plenty of URLs with words or leetspeak words in them though some are very much better than others.

This video above was found in this playlist of funny, nice, and interesting video ids.

Alternative client video

Sometimes when using an alternative YouTube client, the following video will be returned instead of the actual video.

The following content is not available on this app. Watch this content on the latest version of YouTube.

Channels with 1/2 million videos

Roel Van de Paar, at this current time has 2,035,484 videos uploaded.

Knowledge Base, at this current time has 1,054,762 videos uploaded.

Forever processing

A video which is forever processing

Greyscale thumbnail

A video where the thumbnail is in greyscale.

Note: At one point the timeline hover thumbnails were greyscale for this video but something changed and now only the thumbnail is.

Video with everything else hidden

Almost all elements in the page are hidden except for the navbar and the video itself. This particular video was found through an entry on Google's Ads Transparency site.

Still existing thumbnails

The thumbnail of a video deleted more than 5 years ago is still accessible.

Watchable video, inaccessible channel

There are some strange cases where videos are still viewable while the channel is terminated or otherwise inaccessible for some reason.

  1. Channel Google Videos inaccessible for reason This channel is not available.
  2. Channel CYBERXSYSTEMSALGORV1 inaccessible for reason This account has been terminated due to multiple or severe violations of YouTube's policy against spam, deceptive practices, and misleading content or other Terms of Service violations.

Super-wide aspect ratio

Breaks the YouTube UI because the video width is so large.

  1. https://www.youtube.com/watch?v=z815XfakQCE 3840x128
  2. https://www.youtube.com/watch?v=QliQ0livbeQ 3840x678

Custom CSS Video Title

There currently is only one video with a custom css title.

ytd-watch-metadata[video-id=QrGrOK8oZG8] h1.ytd-watch-metadata {
      color:#e6d140;
      font-family:Georgia,serif;
      font-size:250%;
      font-variant:small-caps;
      font-weight:normal;
      transform:skew(-5deg,0deg);
      text-shadow:1px 1px #000,1px 1px .1px #000
}