{"id":21624,"date":"2017-12-13T21:03:41","date_gmt":"2017-12-13T21:03:41","guid":{"rendered":"http:\/\/reactnyc_building_modern_media_experiences_in_react_apps"},"modified":"2017-12-13T21:03:41","modified_gmt":"2017-12-13T21:03:41","slug":"reactnyc_building_modern_media_experiences_in_react_apps","status":"publish","type":"post","link":"https:\/\/cloudinary.com\/blog\/reactnyc_building_modern_media_experiences_in_react_apps","title":{"rendered":"ReactNYC: Building Modern Media Experiences in React Apps"},"content":{"rendered":"<div class=\"wp-block-cloudinary-markdown \"><h2>Summary<\/h2>\n<p>In this talk, the audience learns everything they will ever need to know about playback controls, offline media, image &amp; video optimization and transformation, pre-loading, deep learning with Images, audio &amp; improving web performance by using the right tools while dealing with media assets in their react apps.<\/p>\n<p><a name=\"above_player\" class=\"anchor\"><\/a><\/p>\n<div id=\"ytplayer\" style=\"width: 100%; height: 395px; background-color: #666\"><\/div>\n<script>\n      var tag = document.createElement('script');\n\n      tag.src = \"https:\/\/www.youtube.com\/iframe_api\";\n      var firstScriptTag = document.getElementsByTagName('script')[0];\n      firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);\n\n      var ytplayer;\n      function onYouTubeIframeAPIReady() {\n        ytplayer = new YT.Player('ytplayer', {\n          height: '395',\n          width: '100%',\n          videoId: '_uUaU84XNtQ',\n          events: {\n          }\n        });\n      }\n\n    function playerSeekTo(player, seconds) {\n        player.seekTo(seconds);\n    }\n\n<\/script>\n<h2>Contents<\/h2>\n<p><a href=\"#above_player\" onclick=\"playerSeekTo(ytplayer, 5);\">0:05<\/a> &#8211; Intro\n<br>\n<a href=\"#above_player\" onclick=\"playerSeekTo(ytplayer, 15);\">0:15<\/a> &#8211; Google Developer Expert\n<br>\n<a href=\"#above_player\" onclick=\"playerSeekTo(ytplayer, 40);\">0:40<\/a>  &#8211; Community Evangelist\n<br>\n<a href=\"#above_player\" onclick=\"playerSeekTo(ytplayer, 75);\">1:15<\/a> &#8211; User experiences Across The World With Media on Web\n<br>\n<a href=\"#above_player\" onclick=\"playerSeekTo(ytplayer, 196);\">3:16<\/a> &#8211; UX: Loading Video on a slow 3G network\n<br>\n<a href=\"#above_player\" onclick=\"playerSeekTo(ytplayer, 215);\">3:35<\/a> &#8211; UX: Watching Man\u2019s Not Hot when device goes offline\n<br>\n<a href=\"#above_player\" onclick=\"playerSeekTo(ytplayer, 239);\">3:59<\/a> &#8211; UX: Accessing an Image on second load when it doesn\u2019t come instantly\n<br>\n<a href=\"#above_player\" onclick=\"playerSeekTo(ytplayer, 287);\">4:47<\/a> &#8211; After 2 secs of buffering users start dropping off at around 6% per second\n<br>\n<a href=\"#above_player\" onclick=\"playerSeekTo(ytplayer, 329);\">5:29<\/a> &#8211; Modern Media\n<br>\n<a href=\"#above_player\" onclick=\"playerSeekTo(ytplayer, 398);\">6:38<\/a> &#8211; Anatomy of Modern Media Experience\n<br>\n<a href=\"#above_player\" onclick=\"playerSeekTo(ytplayer, 414);\">6:54<\/a> &#8211; Case studies &#8211; Modern Media Experience\n<br>\n<a href=\"#above_player\" onclick=\"playerSeekTo(ytplayer, 505);\">8:25<\/a> &#8211; Building the Modern Media Experience\u2026 Your turn!\n<br>\n<a href=\"#above_player\" onclick=\"playerSeekTo(ytplayer, 515);\">8:35<\/a> &#8211; Recommended Video players\n<br>\n<a href=\"#above_player\" onclick=\"playerSeekTo(ytplayer, 600);\">10:00<\/a> &#8211; Fast playback with adaptive bitrate streaming\n<br>\n<a href=\"#above_player\" onclick=\"playerSeekTo(ytplayer, 684);\">11:24<\/a> &#8211; Fast playback with video preload\n<br>\n<a href=\"#above_player\" onclick=\"playerSeekTo(ytplayer, 827);\">13:47<\/a> &#8211; Smart video preload considerations\n<br>\n<a href=\"#above_player\" onclick=\"playerSeekTo(ytplayer, 1118);\">18:38<\/a> &#8211; Great UX\n<br>\n<a href=\"#above_player\" onclick=\"playerSeekTo(ytplayer, 1124);\">18:44<\/a> &#8211; Screen Orientation API\n<br>\n<a href=\"#above_player\" onclick=\"playerSeekTo(ytplayer, 1221);\">20:21<\/a> &#8211; Playground Playback &amp; Page Visibility\n<br>\n<a href=\"#above_player\" onclick=\"playerSeekTo(ytplayer, 1288);\">21:28<\/a> &#8211; Intersection Observer API\n<br>\n<a href=\"#above_player\" onclick=\"playerSeekTo(ytplayer, 1387);\">23:07<\/a> &#8211; Media Session API\n<br>\n<a href=\"#above_player\" onclick=\"playerSeekTo(ytplayer, 1517);\">25:17<\/a> &#8211; Image &amp; Video Transformations\n<br>\n<a href=\"#above_player\" onclick=\"playerSeekTo(ytplayer, 1768);\">29:28<\/a> &#8211; Offline\n<br>\n<a href=\"#above_player\" onclick=\"playerSeekTo(ytplayer, 1778);\">29:38<\/a>&#8211; Background Sync\n<br>\n<a href=\"#above_player\" onclick=\"playerSeekTo(ytplayer, 1838);\">30:38<\/a> &#8211; Background Fetch\n<br>\n<a href=\"#above_player\" onclick=\"playerSeekTo(ytplayer, 1906);\">31:46<\/a> &#8211; Modern Media Experience Demo<\/p>\n<h2>Resources<\/h2>\n<ul>\n<li>\n<a href=\"https:\/\/speakerdeck.com\/unicodeveloper\/building-a-modern-media-experience-in-react-apps\">Speaker Deck<\/a>\n<\/li>\n<li>\n<a href=\"https:\/\/github.com\/google\/shaka-player\/blob\/master\/docs\/tutorials\/offline.md\">Google Shaka Player<\/a>\n<\/li>\n<li>\n<a href=\"https:\/\/cloudinary.com\/documentation\/cloudinary_video_player\">Cloudinary Video Player<\/a>\n<\/li>\n<li>\n<a href=\"https:\/\/github.com\/cloudinary\/cloudinary-react\">Cloudinary-React<\/a>\n<\/li>\n<li>\n<a href=\"https:\/\/developers.google.com\/web\/tools\/workbox\/\">Workbox<\/a>\n<\/li>\n<li>\n<a href=\"https:\/\/www.youtube.com\/watch?v=hUS24TDo7-c\">Background Fetch Intro<\/a>\n<\/li>\n<li>\n<a href=\"https:\/\/www.chromestatus.com\/feature\/5712608971718656\">Background Fetch API<\/a>\n<\/li>\n<li>\n<a href=\"https:\/\/biograf-155113.appspot.com\/\">Demos of all presented APIs<\/a>\n<\/li>\n<\/ul>\n<\/div>","protected":false},"excerpt":{"rendered":"","protected":false},"author":41,"featured_media":21625,"comment_status":"","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"_cloudinary_featured_overwrite":false,"footnotes":""},"categories":[1],"tags":[25,68,165,227,246,263],"class_list":["post-21624","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-uncategorized","tag-asset-management","tag-conference","tag-image-transformation","tag-performance-optimization","tag-react","tag-sdk"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v25.6 (Yoast SEO v26.9) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>ReactNYC: Building Modern Media Experiences in React Apps<\/title>\n<meta name=\"description\" content=\"Everything you need to know about playback controls, offline media, image &amp; video optimization and more with react apps.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/cloudinary.com\/blog\/reactnyc_building_modern_media_experiences_in_react_apps\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"ReactNYC: Building Modern Media Experiences in React Apps\" \/>\n<meta property=\"og:description\" content=\"Everything you need to know about playback controls, offline media, image &amp; video optimization and more with react apps.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/cloudinary.com\/blog\/reactnyc_building_modern_media_experiences_in_react_apps\" \/>\n<meta property=\"og:site_name\" content=\"Cloudinary Blog\" \/>\n<meta property=\"article:published_time\" content=\"2017-12-13T21:03:41+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1649718327\/Web_Assets\/blog\/ReactNYC_2000x1100\/ReactNYC_2000x1100.png?_i=AA\" \/>\n\t<meta property=\"og:image:width\" content=\"1540\" \/>\n\t<meta property=\"og:image:height\" content=\"847\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"NewsArticle\",\"@id\":\"https:\/\/cloudinary.com\/blog\/reactnyc_building_modern_media_experiences_in_react_apps#article\",\"isPartOf\":{\"@id\":\"https:\/\/cloudinary.com\/blog\/reactnyc_building_modern_media_experiences_in_react_apps\"},\"author\":{\"name\":\"\",\"@id\":\"\"},\"headline\":\"ReactNYC: Building Modern Media Experiences in React Apps\",\"datePublished\":\"2017-12-13T21:03:41+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/cloudinary.com\/blog\/reactnyc_building_modern_media_experiences_in_react_apps\"},\"wordCount\":8,\"publisher\":{\"@id\":\"https:\/\/cloudinary.com\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/cloudinary.com\/blog\/reactnyc_building_modern_media_experiences_in_react_apps#primaryimage\"},\"thumbnailUrl\":\"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1649718327\/Web_Assets\/blog\/ReactNYC_2000x1100\/ReactNYC_2000x1100.png?_i=AA\",\"keywords\":[\"Asset Management\",\"Conference\",\"Image Transformation\",\"Performance Optimization\",\"React\",\"SDK\"],\"inLanguage\":\"en-US\",\"copyrightYear\":\"2017\",\"copyrightHolder\":{\"@id\":\"https:\/\/cloudinary.com\/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/cloudinary.com\/blog\/reactnyc_building_modern_media_experiences_in_react_apps\",\"url\":\"https:\/\/cloudinary.com\/blog\/reactnyc_building_modern_media_experiences_in_react_apps\",\"name\":\"ReactNYC: Building Modern Media Experiences in React Apps\",\"isPartOf\":{\"@id\":\"https:\/\/cloudinary.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/cloudinary.com\/blog\/reactnyc_building_modern_media_experiences_in_react_apps#primaryimage\"},\"image\":{\"@id\":\"https:\/\/cloudinary.com\/blog\/reactnyc_building_modern_media_experiences_in_react_apps#primaryimage\"},\"thumbnailUrl\":\"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1649718327\/Web_Assets\/blog\/ReactNYC_2000x1100\/ReactNYC_2000x1100.png?_i=AA\",\"datePublished\":\"2017-12-13T21:03:41+00:00\",\"description\":\"Everything you need to know about playback controls, offline media, image & video optimization and more with react apps.\",\"breadcrumb\":{\"@id\":\"https:\/\/cloudinary.com\/blog\/reactnyc_building_modern_media_experiences_in_react_apps#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/cloudinary.com\/blog\/reactnyc_building_modern_media_experiences_in_react_apps\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/cloudinary.com\/blog\/reactnyc_building_modern_media_experiences_in_react_apps#primaryimage\",\"url\":\"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1649718327\/Web_Assets\/blog\/ReactNYC_2000x1100\/ReactNYC_2000x1100.png?_i=AA\",\"contentUrl\":\"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1649718327\/Web_Assets\/blog\/ReactNYC_2000x1100\/ReactNYC_2000x1100.png?_i=AA\",\"width\":1540,\"height\":847},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/cloudinary.com\/blog\/reactnyc_building_modern_media_experiences_in_react_apps#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/cloudinary.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"ReactNYC: Building Modern Media Experiences in React Apps\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/cloudinary.com\/blog\/#website\",\"url\":\"https:\/\/cloudinary.com\/blog\/\",\"name\":\"Cloudinary Blog\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\/\/cloudinary.com\/blog\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/cloudinary.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/cloudinary.com\/blog\/#organization\",\"name\":\"Cloudinary Blog\",\"url\":\"https:\/\/cloudinary.com\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/cloudinary.com\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1649718331\/Web_Assets\/blog\/cloudinary_logo_for_white_bg_1937437aa7_19374666c7_193742f877\/cloudinary_logo_for_white_bg_1937437aa7_19374666c7_193742f877.png?_i=AA\",\"contentUrl\":\"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1649718331\/Web_Assets\/blog\/cloudinary_logo_for_white_bg_1937437aa7_19374666c7_193742f877\/cloudinary_logo_for_white_bg_1937437aa7_19374666c7_193742f877.png?_i=AA\",\"width\":312,\"height\":60,\"caption\":\"Cloudinary Blog\"},\"image\":{\"@id\":\"https:\/\/cloudinary.com\/blog\/#\/schema\/logo\/image\/\"}},{\"@type\":\"Person\",\"@id\":\"\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"ReactNYC: Building Modern Media Experiences in React Apps","description":"Everything you need to know about playback controls, offline media, image & video optimization and more with react apps.","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:\/\/cloudinary.com\/blog\/reactnyc_building_modern_media_experiences_in_react_apps","og_locale":"en_US","og_type":"article","og_title":"ReactNYC: Building Modern Media Experiences in React Apps","og_description":"Everything you need to know about playback controls, offline media, image & video optimization and more with react apps.","og_url":"https:\/\/cloudinary.com\/blog\/reactnyc_building_modern_media_experiences_in_react_apps","og_site_name":"Cloudinary Blog","article_published_time":"2017-12-13T21:03:41+00:00","og_image":[{"width":1540,"height":847,"url":"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1649718327\/Web_Assets\/blog\/ReactNYC_2000x1100\/ReactNYC_2000x1100.png?_i=AA","type":"image\/png"}],"twitter_card":"summary_large_image","schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"NewsArticle","@id":"https:\/\/cloudinary.com\/blog\/reactnyc_building_modern_media_experiences_in_react_apps#article","isPartOf":{"@id":"https:\/\/cloudinary.com\/blog\/reactnyc_building_modern_media_experiences_in_react_apps"},"author":{"name":"","@id":""},"headline":"ReactNYC: Building Modern Media Experiences in React Apps","datePublished":"2017-12-13T21:03:41+00:00","mainEntityOfPage":{"@id":"https:\/\/cloudinary.com\/blog\/reactnyc_building_modern_media_experiences_in_react_apps"},"wordCount":8,"publisher":{"@id":"https:\/\/cloudinary.com\/blog\/#organization"},"image":{"@id":"https:\/\/cloudinary.com\/blog\/reactnyc_building_modern_media_experiences_in_react_apps#primaryimage"},"thumbnailUrl":"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1649718327\/Web_Assets\/blog\/ReactNYC_2000x1100\/ReactNYC_2000x1100.png?_i=AA","keywords":["Asset Management","Conference","Image Transformation","Performance Optimization","React","SDK"],"inLanguage":"en-US","copyrightYear":"2017","copyrightHolder":{"@id":"https:\/\/cloudinary.com\/#organization"}},{"@type":"WebPage","@id":"https:\/\/cloudinary.com\/blog\/reactnyc_building_modern_media_experiences_in_react_apps","url":"https:\/\/cloudinary.com\/blog\/reactnyc_building_modern_media_experiences_in_react_apps","name":"ReactNYC: Building Modern Media Experiences in React Apps","isPartOf":{"@id":"https:\/\/cloudinary.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/cloudinary.com\/blog\/reactnyc_building_modern_media_experiences_in_react_apps#primaryimage"},"image":{"@id":"https:\/\/cloudinary.com\/blog\/reactnyc_building_modern_media_experiences_in_react_apps#primaryimage"},"thumbnailUrl":"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1649718327\/Web_Assets\/blog\/ReactNYC_2000x1100\/ReactNYC_2000x1100.png?_i=AA","datePublished":"2017-12-13T21:03:41+00:00","description":"Everything you need to know about playback controls, offline media, image & video optimization and more with react apps.","breadcrumb":{"@id":"https:\/\/cloudinary.com\/blog\/reactnyc_building_modern_media_experiences_in_react_apps#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/cloudinary.com\/blog\/reactnyc_building_modern_media_experiences_in_react_apps"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/cloudinary.com\/blog\/reactnyc_building_modern_media_experiences_in_react_apps#primaryimage","url":"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1649718327\/Web_Assets\/blog\/ReactNYC_2000x1100\/ReactNYC_2000x1100.png?_i=AA","contentUrl":"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1649718327\/Web_Assets\/blog\/ReactNYC_2000x1100\/ReactNYC_2000x1100.png?_i=AA","width":1540,"height":847},{"@type":"BreadcrumbList","@id":"https:\/\/cloudinary.com\/blog\/reactnyc_building_modern_media_experiences_in_react_apps#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/cloudinary.com\/blog\/"},{"@type":"ListItem","position":2,"name":"ReactNYC: Building Modern Media Experiences in React Apps"}]},{"@type":"WebSite","@id":"https:\/\/cloudinary.com\/blog\/#website","url":"https:\/\/cloudinary.com\/blog\/","name":"Cloudinary Blog","description":"","publisher":{"@id":"https:\/\/cloudinary.com\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/cloudinary.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/cloudinary.com\/blog\/#organization","name":"Cloudinary Blog","url":"https:\/\/cloudinary.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/cloudinary.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1649718331\/Web_Assets\/blog\/cloudinary_logo_for_white_bg_1937437aa7_19374666c7_193742f877\/cloudinary_logo_for_white_bg_1937437aa7_19374666c7_193742f877.png?_i=AA","contentUrl":"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1649718331\/Web_Assets\/blog\/cloudinary_logo_for_white_bg_1937437aa7_19374666c7_193742f877\/cloudinary_logo_for_white_bg_1937437aa7_19374666c7_193742f877.png?_i=AA","width":312,"height":60,"caption":"Cloudinary Blog"},"image":{"@id":"https:\/\/cloudinary.com\/blog\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":""}]}},"jetpack_featured_media_url":"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1649718327\/Web_Assets\/blog\/ReactNYC_2000x1100\/ReactNYC_2000x1100.png?_i=AA","_links":{"self":[{"href":"https:\/\/cloudinary.com\/blog\/wp-json\/wp\/v2\/posts\/21624","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/cloudinary.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/cloudinary.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/cloudinary.com\/blog\/wp-json\/wp\/v2\/users\/41"}],"replies":[{"embeddable":true,"href":"https:\/\/cloudinary.com\/blog\/wp-json\/wp\/v2\/comments?post=21624"}],"version-history":[{"count":0,"href":"https:\/\/cloudinary.com\/blog\/wp-json\/wp\/v2\/posts\/21624\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/cloudinary.com\/blog\/wp-json\/wp\/v2\/media\/21625"}],"wp:attachment":[{"href":"https:\/\/cloudinary.com\/blog\/wp-json\/wp\/v2\/media?parent=21624"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/cloudinary.com\/blog\/wp-json\/wp\/v2\/categories?post=21624"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/cloudinary.com\/blog\/wp-json\/wp\/v2\/tags?post=21624"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}