{"id":352,"date":"2019-08-31T16:07:06","date_gmt":"2019-08-31T16:07:06","guid":{"rendered":"https:\/\/stuff.tamius.net\/sacred-texts\/?p=352"},"modified":"2019-08-31T20:31:18","modified_gmt":"2019-08-31T20:31:18","slug":"ultrawidify-and-the-improper-cropping","status":"publish","type":"post","link":"https:\/\/stuff.tamius.net\/sacred-texts\/2019\/08\/31\/ultrawidify-and-the-improper-cropping\/","title":{"rendered":"Ultrawidify and the Improper Cropping"},"content":{"rendered":"\n<p class=\"has-drop-cap wp-block-paragraph\">Yet another day, yet another post about stuff going wrong. This time, I&#8217;ve got a bug report that &#8220;videos are jumping around&#8221; on Facebook and some other pages. I tried to verify the problem &#8230; and everything worked fine for me. Then I decided to boot up Windows and there it was \u2014 the problem as described. So nice \u2014 we have a problem that happens on some operating systems and doesn&#8217;t on others, even though that shouldn&#8217;t be the case in theory.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">But eventually, the issue was reproduced and that&#8217;s all that matters. The issue appears very familiar \u2014 it has been observed on reddit before.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"> A video and a player<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">In a very ELI5 way, every webpage is made out of a bunch of rectangles (layers, elements), one within another. In order to properly crop a video, we must know which of these elements is actually the player (&#8216;player&#8217; element is to our video what picture frame is to a picture), and we need to know which element is the player element. Picking the wrong element can result in extension cropping to little, too much, or moving the video out of the picture altogether.<br><br>We can&#8217;t just assume that the first element above the video is a player, either: sometimes sites put addiitonal elements between the two. This is why we need &#8216;guess&#8217; the player element by looking at the size.<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\"><p>Side note: not all extensions use that approach. Some seem to just assume you use a 21:9 monitor and slap a &#8216;enlarge this element by 1.3&#8217; on the video element. Great and foolproof strategy for fullscreen. Less great for youtube&#8217;s theater mode, twitch with chat opened at the side, or non-fullscreen Netflix. <\/p><\/blockquote>\n\n\n\n<h2 class=\"wp-block-heading\">Legacy and technical debt<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">The code for determining which element is the player element has some weird quirks thanks to the history of the addon. Most notably, the extension used to work by determining how tall and how wide the video should be back in the day when it was only focused on Youtube and Netflix. This method has a few drawbacks, with most notable ones being:<\/p>\n\n\n\n<ol class=\"wp-block-list\"><li>If you ask browser to tell you the size of the video, it&#8217;ll tell you the dimensions you specified<\/li><li>It worked for youtube and netflix, but not for everything else<\/li><\/ol>\n\n\n\n<p class=\"wp-block-paragraph\">In general, we can assume that initial size of the player will be exactly as wide as the video or exactly as tall as the video. However, since we actually changed the size of the video (as opposed to telling browser to just enlarge the video by some factor), we couldn&#8217;t check for that as if the video was cropped, browser would tell us the post-crop size (and post-crop size is useless for that purpose). Some wonky code was written to deal with this issue and it worked well enough for Youtube and Netflix and sometimes even other sites. However, said code is \u2014 in retrospect \u2014 pretty bad. Looking at it invokes a few questions that every programmer sometimes asks themselves: &#8220;the hell was I trying to do with this shit&#8221; and &#8220;how the fuck did this even work at all?&#8221;<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/stuff.tamius.net\/sacred-texts\/wp-content\/uploads\/2019\/08\/Screenshot_20190831_164801-1024x604.png\" alt=\"\" class=\"wp-image-353\" width=\"1024\" height=\"604\" srcset=\"https:\/\/stuff.tamius.net\/sacred-texts\/wp-content\/uploads\/2019\/08\/Screenshot_20190831_164801-1024x604.png 1024w, https:\/\/stuff.tamius.net\/sacred-texts\/wp-content\/uploads\/2019\/08\/Screenshot_20190831_164801-300x177.png 300w, https:\/\/stuff.tamius.net\/sacred-texts\/wp-content\/uploads\/2019\/08\/Screenshot_20190831_164801-768x453.png 768w, https:\/\/stuff.tamius.net\/sacred-texts\/wp-content\/uploads\/2019\/08\/Screenshot_20190831_164801-1200x707.png 1200w, https:\/\/stuff.tamius.net\/sacred-texts\/wp-content\/uploads\/2019\/08\/Screenshot_20190831_164801.png 1401w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption>You could farm karma at \/r\/badcode with this.<\/figcaption><\/figure><\/div>\n\n\n\n<p class=\"wp-block-paragraph\">Due to problems with #2, a better solution to resizing the video needed to be implemented, and eventually it was in the form of <code>transform: scale(x,y)<\/code>. Using this to crop video (as opposed to modifying width and height attributes of the video) has some nifty advantages: it&#8217;s possible to get the size of the video without taking <code>transform<\/code> into account. This allows us to rewrite the player detect loop in a way that will correctly detect the player element.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Dealing with duplicates<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Another thing worth addressing is &#8220;duplicates&#8221; \u2014 that is, what happens when more than one element on our way from video element to the root of the page has the same size. I haven&#8217;t figured out what to do in this case, since the correctness of picking innermost over outermost element for player may differ from site to site. In absence of better options, I decided to score every element that could be our player. Rules of the game:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>Every element that matches our criteria gets 100 base points<\/li><li>Elements with <code>'player'<\/code> in their ID get 75 bonus points<\/li><li>Elements with <code>'player'<\/code> in their classlist get 50 bonus points<\/li><li>The farther the element is from our video, the more penalty points it gets. First match gets 0 penalty points, second gets one, third gets two and so on.<\/li><\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">I haven&#8217;t had the chance to test this thoroughly, so results may vary. <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">That&#8217;s it for the day. <\/p>\n","protected":false},"excerpt":{"rendered":"<p>Yet another day, yet another post about stuff going wrong. This time, I&#8217;ve got a bug report that &#8220;videos are jumping around&#8221; on Facebook and some other pages. I tried to verify the problem &#8230; and everything worked fine for me. Then I decided to boot up Windows and there it was \u2014 the problem as described. So nice \u2014 we have a problem<span class=\"more-dots\">&#8230;<\/span> <span class=\"more-tag d-block mt-05\"><a class=\"more-link\" href=\"https:\/\/stuff.tamius.net\/sacred-texts\/2019\/08\/31\/ultrawidify-and-the-improper-cropping\/\">Continue Reading...<span class=\"screen-reader-text\"> \"Ultrawidify and the Improper Cropping\"<\/span><\/a><\/span><!-- .more-tag --><\/p>\n","protected":false},"author":1,"featured_media":328,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"pgc_sgb_lightbox_settings":"","footnotes":""},"categories":[13,8,9],"tags":[],"class_list":["post-352","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-programming","category-software","category-ultrawidify"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.3 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Ultrawidify and the Improper Cropping - Tamius&#039; sacred texts<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/stuff.tamius.net\/sacred-texts\/2019\/08\/31\/ultrawidify-and-the-improper-cropping\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Ultrawidify and the Improper Cropping - Tamius&#039; sacred texts\" \/>\n<meta property=\"og:description\" content=\"Yet another day, yet another post about stuff going wrong. This time, I&#8217;ve got a bug report that &#8220;videos are jumping around&#8221; on Facebook and some other pages. I tried to verify the problem &#8230; and everything worked fine for me. Then I decided to boot up Windows and there it was \u2014 the problem as described. So nice \u2014 we have a problem...\" \/>\n<meta property=\"og:url\" content=\"https:\/\/stuff.tamius.net\/sacred-texts\/2019\/08\/31\/ultrawidify-and-the-improper-cropping\/\" \/>\n<meta property=\"og:site_name\" content=\"Tamius&#039; sacred texts\" \/>\n<meta property=\"article:published_time\" content=\"2019-08-31T16:07:06+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2019-08-31T20:31:18+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/stuff.tamius.net\/sacred-texts\/wp-content\/uploads\/2019\/08\/code_header.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"4039\" \/>\n\t<meta property=\"og:image:height\" content=\"2272\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Tamius Han\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Tamius Han\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"4 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/stuff.tamius.net\\\/sacred-texts\\\/2019\\\/08\\\/31\\\/ultrawidify-and-the-improper-cropping\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/stuff.tamius.net\\\/sacred-texts\\\/2019\\\/08\\\/31\\\/ultrawidify-and-the-improper-cropping\\\/\"},\"author\":{\"name\":\"Tamius Han\",\"@id\":\"https:\\\/\\\/stuff.tamius.net\\\/sacred-texts\\\/#\\\/schema\\\/person\\\/4677d05a4f45974f27cd21481c561c21\"},\"headline\":\"Ultrawidify and the Improper Cropping\",\"datePublished\":\"2019-08-31T16:07:06+00:00\",\"dateModified\":\"2019-08-31T20:31:18+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/stuff.tamius.net\\\/sacred-texts\\\/2019\\\/08\\\/31\\\/ultrawidify-and-the-improper-cropping\\\/\"},\"wordCount\":769,\"commentCount\":0,\"image\":{\"@id\":\"https:\\\/\\\/stuff.tamius.net\\\/sacred-texts\\\/2019\\\/08\\\/31\\\/ultrawidify-and-the-improper-cropping\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/stuff.tamius.net\\\/sacred-texts\\\/wp-content\\\/uploads\\\/2019\\\/08\\\/code_header.jpg\",\"articleSection\":[\"Programming\",\"Software\",\"Ultrawidify\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/stuff.tamius.net\\\/sacred-texts\\\/2019\\\/08\\\/31\\\/ultrawidify-and-the-improper-cropping\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/stuff.tamius.net\\\/sacred-texts\\\/2019\\\/08\\\/31\\\/ultrawidify-and-the-improper-cropping\\\/\",\"url\":\"https:\\\/\\\/stuff.tamius.net\\\/sacred-texts\\\/2019\\\/08\\\/31\\\/ultrawidify-and-the-improper-cropping\\\/\",\"name\":\"Ultrawidify and the Improper Cropping - Tamius&#039; sacred texts\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/stuff.tamius.net\\\/sacred-texts\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/stuff.tamius.net\\\/sacred-texts\\\/2019\\\/08\\\/31\\\/ultrawidify-and-the-improper-cropping\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/stuff.tamius.net\\\/sacred-texts\\\/2019\\\/08\\\/31\\\/ultrawidify-and-the-improper-cropping\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/stuff.tamius.net\\\/sacred-texts\\\/wp-content\\\/uploads\\\/2019\\\/08\\\/code_header.jpg\",\"datePublished\":\"2019-08-31T16:07:06+00:00\",\"dateModified\":\"2019-08-31T20:31:18+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/stuff.tamius.net\\\/sacred-texts\\\/#\\\/schema\\\/person\\\/4677d05a4f45974f27cd21481c561c21\"},\"breadcrumb\":{\"@id\":\"https:\\\/\\\/stuff.tamius.net\\\/sacred-texts\\\/2019\\\/08\\\/31\\\/ultrawidify-and-the-improper-cropping\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/stuff.tamius.net\\\/sacred-texts\\\/2019\\\/08\\\/31\\\/ultrawidify-and-the-improper-cropping\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/stuff.tamius.net\\\/sacred-texts\\\/2019\\\/08\\\/31\\\/ultrawidify-and-the-improper-cropping\\\/#primaryimage\",\"url\":\"https:\\\/\\\/stuff.tamius.net\\\/sacred-texts\\\/wp-content\\\/uploads\\\/2019\\\/08\\\/code_header.jpg\",\"contentUrl\":\"https:\\\/\\\/stuff.tamius.net\\\/sacred-texts\\\/wp-content\\\/uploads\\\/2019\\\/08\\\/code_header.jpg\",\"width\":4039,\"height\":2272},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/stuff.tamius.net\\\/sacred-texts\\\/2019\\\/08\\\/31\\\/ultrawidify-and-the-improper-cropping\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/stuff.tamius.net\\\/sacred-texts\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Ultrawidify and the Improper Cropping\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/stuff.tamius.net\\\/sacred-texts\\\/#website\",\"url\":\"https:\\\/\\\/stuff.tamius.net\\\/sacred-texts\\\/\",\"name\":\"Tamius&#039; sacred texts\",\"description\":\"... containing one of the weirdest mix of pointless topics.\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/stuff.tamius.net\\\/sacred-texts\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/stuff.tamius.net\\\/sacred-texts\\\/#\\\/schema\\\/person\\\/4677d05a4f45974f27cd21481c561c21\",\"name\":\"Tamius Han\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/1ce12569905c4aff5d48778af8527565f1175c254ad56cc5e5221666ff1e222b?s=96&d=blank&r=pg\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/1ce12569905c4aff5d48778af8527565f1175c254ad56cc5e5221666ff1e222b?s=96&d=blank&r=pg\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/1ce12569905c4aff5d48778af8527565f1175c254ad56cc5e5221666ff1e222b?s=96&d=blank&r=pg\",\"caption\":\"Tamius Han\"},\"url\":\"https:\\\/\\\/stuff.tamius.net\\\/sacred-texts\\\/author\\\/tamius-han\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Ultrawidify and the Improper Cropping - Tamius&#039; sacred texts","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/stuff.tamius.net\/sacred-texts\/2019\/08\/31\/ultrawidify-and-the-improper-cropping\/","og_locale":"en_US","og_type":"article","og_title":"Ultrawidify and the Improper Cropping - Tamius&#039; sacred texts","og_description":"Yet another day, yet another post about stuff going wrong. This time, I&#8217;ve got a bug report that &#8220;videos are jumping around&#8221; on Facebook and some other pages. I tried to verify the problem &#8230; and everything worked fine for me. Then I decided to boot up Windows and there it was \u2014 the problem as described. So nice \u2014 we have a problem...","og_url":"https:\/\/stuff.tamius.net\/sacred-texts\/2019\/08\/31\/ultrawidify-and-the-improper-cropping\/","og_site_name":"Tamius&#039; sacred texts","article_published_time":"2019-08-31T16:07:06+00:00","article_modified_time":"2019-08-31T20:31:18+00:00","og_image":[{"width":4039,"height":2272,"url":"https:\/\/stuff.tamius.net\/sacred-texts\/wp-content\/uploads\/2019\/08\/code_header.jpg","type":"image\/jpeg"}],"author":"Tamius Han","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Tamius Han","Est. reading time":"4 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/stuff.tamius.net\/sacred-texts\/2019\/08\/31\/ultrawidify-and-the-improper-cropping\/#article","isPartOf":{"@id":"https:\/\/stuff.tamius.net\/sacred-texts\/2019\/08\/31\/ultrawidify-and-the-improper-cropping\/"},"author":{"name":"Tamius Han","@id":"https:\/\/stuff.tamius.net\/sacred-texts\/#\/schema\/person\/4677d05a4f45974f27cd21481c561c21"},"headline":"Ultrawidify and the Improper Cropping","datePublished":"2019-08-31T16:07:06+00:00","dateModified":"2019-08-31T20:31:18+00:00","mainEntityOfPage":{"@id":"https:\/\/stuff.tamius.net\/sacred-texts\/2019\/08\/31\/ultrawidify-and-the-improper-cropping\/"},"wordCount":769,"commentCount":0,"image":{"@id":"https:\/\/stuff.tamius.net\/sacred-texts\/2019\/08\/31\/ultrawidify-and-the-improper-cropping\/#primaryimage"},"thumbnailUrl":"https:\/\/stuff.tamius.net\/sacred-texts\/wp-content\/uploads\/2019\/08\/code_header.jpg","articleSection":["Programming","Software","Ultrawidify"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/stuff.tamius.net\/sacred-texts\/2019\/08\/31\/ultrawidify-and-the-improper-cropping\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/stuff.tamius.net\/sacred-texts\/2019\/08\/31\/ultrawidify-and-the-improper-cropping\/","url":"https:\/\/stuff.tamius.net\/sacred-texts\/2019\/08\/31\/ultrawidify-and-the-improper-cropping\/","name":"Ultrawidify and the Improper Cropping - Tamius&#039; sacred texts","isPartOf":{"@id":"https:\/\/stuff.tamius.net\/sacred-texts\/#website"},"primaryImageOfPage":{"@id":"https:\/\/stuff.tamius.net\/sacred-texts\/2019\/08\/31\/ultrawidify-and-the-improper-cropping\/#primaryimage"},"image":{"@id":"https:\/\/stuff.tamius.net\/sacred-texts\/2019\/08\/31\/ultrawidify-and-the-improper-cropping\/#primaryimage"},"thumbnailUrl":"https:\/\/stuff.tamius.net\/sacred-texts\/wp-content\/uploads\/2019\/08\/code_header.jpg","datePublished":"2019-08-31T16:07:06+00:00","dateModified":"2019-08-31T20:31:18+00:00","author":{"@id":"https:\/\/stuff.tamius.net\/sacred-texts\/#\/schema\/person\/4677d05a4f45974f27cd21481c561c21"},"breadcrumb":{"@id":"https:\/\/stuff.tamius.net\/sacred-texts\/2019\/08\/31\/ultrawidify-and-the-improper-cropping\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/stuff.tamius.net\/sacred-texts\/2019\/08\/31\/ultrawidify-and-the-improper-cropping\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/stuff.tamius.net\/sacred-texts\/2019\/08\/31\/ultrawidify-and-the-improper-cropping\/#primaryimage","url":"https:\/\/stuff.tamius.net\/sacred-texts\/wp-content\/uploads\/2019\/08\/code_header.jpg","contentUrl":"https:\/\/stuff.tamius.net\/sacred-texts\/wp-content\/uploads\/2019\/08\/code_header.jpg","width":4039,"height":2272},{"@type":"BreadcrumbList","@id":"https:\/\/stuff.tamius.net\/sacred-texts\/2019\/08\/31\/ultrawidify-and-the-improper-cropping\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/stuff.tamius.net\/sacred-texts\/"},{"@type":"ListItem","position":2,"name":"Ultrawidify and the Improper Cropping"}]},{"@type":"WebSite","@id":"https:\/\/stuff.tamius.net\/sacred-texts\/#website","url":"https:\/\/stuff.tamius.net\/sacred-texts\/","name":"Tamius&#039; sacred texts","description":"... containing one of the weirdest mix of pointless topics.","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/stuff.tamius.net\/sacred-texts\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/stuff.tamius.net\/sacred-texts\/#\/schema\/person\/4677d05a4f45974f27cd21481c561c21","name":"Tamius Han","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/1ce12569905c4aff5d48778af8527565f1175c254ad56cc5e5221666ff1e222b?s=96&d=blank&r=pg","url":"https:\/\/secure.gravatar.com\/avatar\/1ce12569905c4aff5d48778af8527565f1175c254ad56cc5e5221666ff1e222b?s=96&d=blank&r=pg","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/1ce12569905c4aff5d48778af8527565f1175c254ad56cc5e5221666ff1e222b?s=96&d=blank&r=pg","caption":"Tamius Han"},"url":"https:\/\/stuff.tamius.net\/sacred-texts\/author\/tamius-han\/"}]}},"_links":{"self":[{"href":"https:\/\/stuff.tamius.net\/sacred-texts\/wp-json\/wp\/v2\/posts\/352","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/stuff.tamius.net\/sacred-texts\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/stuff.tamius.net\/sacred-texts\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/stuff.tamius.net\/sacred-texts\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/stuff.tamius.net\/sacred-texts\/wp-json\/wp\/v2\/comments?post=352"}],"version-history":[{"count":2,"href":"https:\/\/stuff.tamius.net\/sacred-texts\/wp-json\/wp\/v2\/posts\/352\/revisions"}],"predecessor-version":[{"id":355,"href":"https:\/\/stuff.tamius.net\/sacred-texts\/wp-json\/wp\/v2\/posts\/352\/revisions\/355"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/stuff.tamius.net\/sacred-texts\/wp-json\/wp\/v2\/media\/328"}],"wp:attachment":[{"href":"https:\/\/stuff.tamius.net\/sacred-texts\/wp-json\/wp\/v2\/media?parent=352"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/stuff.tamius.net\/sacred-texts\/wp-json\/wp\/v2\/categories?post=352"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/stuff.tamius.net\/sacred-texts\/wp-json\/wp\/v2\/tags?post=352"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}