Skip to content

Instantly share code, notes, and snippets.

@barbagrigia
Forked from mfd/arg.json
Created February 21, 2019 11:20
Show Gist options
  • Save barbagrigia/30f4a9c099695865154b6afb4345b81d to your computer and use it in GitHub Desktop.
Save barbagrigia/30f4a9c099695865154b6afb4345b81d to your computer and use it in GitHub Desktop.
jwplayer
{
"description": "ES6 for Everyone — The best way to learn modern ES6 JavaScript.",
"title": "ES6",
"feedid": "ES6",
"kind": "DYNAMIC",
"playlist": [
{
"mediaid": "ES6_01",
"feedid": "ES6",
"image": "https://coursehunters.net/uploads/course_posters_/es6-for-everyone.jpg",
"title": "00 - Getting Setup",
"file": "https://vs1.coursehunters.net/es6-for-everyone/001.mp4",
"tracks": [
{
"kind": "captions",
"file": "https://raw.githubusercontent.com/wesbos/Wes-Bos-Captions/master/ES6/00 - Getting Setup.vtt",
"label": "English",
"default": true
}
]
},
{
"mediaid": "ES6_02",
"feedid": "ES6",
"image": "https://coursehunters.net/uploads/course_posters_/es6-for-everyone.jpg",
"title": "01 - var Scoping Refresher",
"file": "https://vs1.coursehunters.net/es6-for-everyone/002.mp4",
"tracks": [
{
"kind": "captions",
"file": "https://raw.githubusercontent.com/wesbos/Wes-Bos-Captions/master/ES6/01 - var Scoping Refresher.vtt",
"label": "English",
"default": true
}
]
},
{
"mediaid": "ES6_03",
"feedid": "ES6",
"image": "https://coursehunters.net/uploads/course_posters_/es6-for-everyone.jpg",
"title": "02 - let VS const",
"file": "https://vs1.coursehunters.net/es6-for-everyone/003.mp4",
"tracks": [
{
"kind": "captions",
"file": "https://raw.githubusercontent.com/wesbos/Wes-Bos-Captions/master/ES6/02 - let VS const.vtt",
"label": "English",
"default": true
}
]
},
{
"mediaid": "ES6_04",
"feedid": "ES6",
"image": "https://coursehunters.net/uploads/course_posters_/es6-for-everyone.jpg",
"title": "03 - let and const in the Real World",
"file": "https://vs1.coursehunters.net/es6-for-everyone/004.mp4",
"tracks": [
{
"kind": "captions",
"file": "https://raw.githubusercontent.com/wesbos/Wes-Bos-Captions/master/ES6/03 - let and const in the Real World.vtt",
"label": "English",
"default": true
}
]
},
{
"mediaid": "ES6_05",
"feedid": "ES6",
"image": "https://coursehunters.net/uploads/course_posters_/es6-for-everyone.jpg",
"title": "04 - Temporal Dead Zone",
"file": "https://vs1.coursehunters.net/es6-for-everyone/005.mp4",
"tracks": [
{
"kind": "captions",
"file": "https://raw.githubusercontent.com/wesbos/Wes-Bos-Captions/master/ES6/04 - Temporal Dead Zone.vtt",
"label": "English",
"default": true
}
]
},
{
"mediaid": "ES6_06",
"feedid": "ES6",
"image": "https://coursehunters.net/uploads/course_posters_/es6-for-everyone.jpg",
"title": "05 - Is var Dead What should I use",
"file": "https://vs1.coursehunters.net/es6-for-everyone/006.mp4",
"tracks": [
{
"kind": "captions",
"file": "https://raw.githubusercontent.com/wesbos/Wes-Bos-Captions/master/ES6/05 - Is var Dead What should I use.vtt",
"label": "English",
"default": true
}
]
},
{
"mediaid": "ES6_07",
"feedid": "ES6",
"image": "https://coursehunters.net/uploads/course_posters_/es6-for-everyone.jpg",
"title": "06 - Arrow Functions Introduction",
"file": "https://vs1.coursehunters.net/es6-for-everyone/007.mp4",
"tracks": [
{
"kind": "captions",
"file": "https://raw.githubusercontent.com/wesbos/Wes-Bos-Captions/master/ES6/06 - Arrow Functions Introduction.vtt",
"label": "English",
"default": true
}
]
},
{
"mediaid": "ES6_08",
"feedid": "ES6",
"image": "https://coursehunters.net/uploads/course_posters_/es6-for-everyone.jpg",
"title": "07 - More Arrow Function Examples",
"file": "https://vs1.coursehunters.net/es6-for-everyone/008.mp4",
"tracks": [
{
"kind": "captions",
"file": "https://raw.githubusercontent.com/wesbos/Wes-Bos-Captions/master/ES6/07 - More Arrow Function Examples.vtt",
"label": "English",
"default": true
}
]
},
{
"mediaid": "ES6_09",
"feedid": "ES6",
"image": "https://coursehunters.net/uploads/course_posters_/es6-for-everyone.jpg",
"title": "08 - Arrow Functions and `this`",
"file": "https://vs1.coursehunters.net/es6-for-everyone/009.mp4",
"tracks": [
{
"kind": "captions",
"file": "https://raw.githubusercontent.com/wesbos/Wes-Bos-Captions/master/ES6/08 - Arrow Functions and `this`.vtt",
"label": "English",
"default": true
}
]
},
{
"mediaid": "ES6_010",
"feedid": "ES6",
"image": "https://coursehunters.net/uploads/course_posters_/es6-for-everyone.jpg",
"title": "09 - Default Function Arguments",
"file": "https://vs1.coursehunters.net/es6-for-everyone/010.mp4",
"tracks": [
{
"kind": "captions",
"file": "https://raw.githubusercontent.com/wesbos/Wes-Bos-Captions/master/ES6/09 - Default Function Arguments.vtt",
"label": "English",
"default": true
}
]
},
{
"mediaid": "ES6_011",
"feedid": "ES6",
"image": "https://coursehunters.net/uploads/course_posters_/es6-for-everyone.jpg",
"title": "10 - When NOT to use an Arrow Function",
"file": "https://vs1.coursehunters.net/es6-for-everyone/011.mp4",
"tracks": [
{
"kind": "captions",
"file": "https://raw.githubusercontent.com/wesbos/Wes-Bos-Captions/master/ES6/10 - When NOT to use an Arrow Function.vtt",
"label": "English",
"default": true
}
]
},
{
"mediaid": "ES6_012",
"feedid": "ES6",
"image": "https://coursehunters.net/uploads/course_posters_/es6-for-everyone.jpg",
"title": "11 - Arrow Functions Exercises",
"file": "https://vs1.coursehunters.net/es6-for-everyone/012.mp4",
"tracks": [
{
"kind": "captions",
"file": "https://raw.githubusercontent.com/wesbos/Wes-Bos-Captions/master/ES6/11 - Arrow Functions Exercises.vtt",
"label": "English",
"default": true
}
]
},
{
"mediaid": "ES6_013",
"feedid": "ES6",
"image": "https://coursehunters.net/uploads/course_posters_/es6-for-everyone.jpg",
"title": "12 - Template Strings Introduction",
"file": "https://vs1.coursehunters.net/es6-for-everyone/013.mp4",
"tracks": [
{
"kind": "captions",
"file": "https://raw.githubusercontent.com/wesbos/Wes-Bos-Captions/master/ES6/12 - Template Strings Introduction.vtt",
"label": "English",
"default": true
}
]
},
{
"mediaid": "ES6_014",
"feedid": "ES6",
"image": "https://coursehunters.net/uploads/course_posters_/es6-for-everyone.jpg",
"title": "13 - Creating HTML fragments with Template Literals",
"file": "https://vs1.coursehunters.net/es6-for-everyone/014.mp4",
"tracks": [
{
"kind": "captions",
"file": "https://raw.githubusercontent.com/wesbos/Wes-Bos-Captions/master/ES6/13 - Creating HTML fragments with Template Literals.vtt",
"label": "English",
"default": true
}
]
},
{
"mediaid": "ES6_015",
"feedid": "ES6",
"image": "https://coursehunters.net/uploads/course_posters_/es6-for-everyone.jpg",
"title": "14 - Tagged Template Literals",
"file": "https://vs1.coursehunters.net/es6-for-everyone/015.mp4",
"tracks": [
{
"kind": "captions",
"file": "https://raw.githubusercontent.com/wesbos/Wes-Bos-Captions/master/ES6/14 - Tagged Template Literals.vtt",
"label": "English",
"default": true
}
]
},
{
"mediaid": "ES6_016",
"feedid": "ES6",
"image": "https://coursehunters.net/uploads/course_posters_/es6-for-everyone.jpg",
"title": "15 - Tagged Templates Exercise",
"file": "https://vs1.coursehunters.net/es6-for-everyone/016.mp4",
"tracks": [
{
"kind": "captions",
"file": "https://raw.githubusercontent.com/wesbos/Wes-Bos-Captions/master/ES6/15 - Tagged Templates Exercise.vtt",
"label": "English",
"default": true
}
]
},
{
"mediaid": "ES6_017",
"feedid": "ES6",
"image": "https://coursehunters.net/uploads/course_posters_/es6-for-everyone.jpg",
"title": "16 - Santizing User Data with Tagged Templates",
"file": "https://vs1.coursehunters.net/es6-for-everyone/017.mp4",
"tracks": [
{
"kind": "captions",
"file": "https://raw.githubusercontent.com/wesbos/Wes-Bos-Captions/master/ES6/16 - Santizing User Data with Tagged Templates.vtt",
"label": "English",
"default": true
}
]
},
{
"mediaid": "ES6_018",
"feedid": "ES6",
"image": "https://coursehunters.net/uploads/course_posters_/es6-for-everyone.jpg",
"title": "17 - Additional String Improvements",
"file": "https://vs1.coursehunters.net/es6-for-everyone/018.mp4",
"tracks": [
{
"kind": "captions",
"file": "https://raw.githubusercontent.com/wesbos/Wes-Bos-Captions/master/ES6/17 - Additional String Improvements.vtt",
"label": "English",
"default": true
}
]
},
{
"mediaid": "ES6_019",
"feedid": "ES6",
"image": "https://coursehunters.net/uploads/course_posters_/es6-for-everyone.jpg",
"title": "18 - Destructuring Objects",
"file": "https://vs1.coursehunters.net/es6-for-everyone/019.mp4",
"tracks": [
{
"kind": "captions",
"file": "https://raw.githubusercontent.com/wesbos/Wes-Bos-Captions/master/ES6/18 - Destructuring Objects.vtt",
"label": "English",
"default": true
}
]
},
{
"mediaid": "ES6_020",
"feedid": "ES6",
"image": "https://coursehunters.net/uploads/course_posters_/es6-for-everyone.jpg",
"title": "19 - Destructing Arrays",
"file": "https://vs1.coursehunters.net/es6-for-everyone/020.mp4",
"tracks": [
{
"kind": "captions",
"file": "https://raw.githubusercontent.com/wesbos/Wes-Bos-Captions/master/ES6/19 - Destructing Arrays.vtt",
"label": "English",
"default": true
}
]
},
{
"mediaid": "ES6_021",
"feedid": "ES6",
"image": "https://coursehunters.net/uploads/course_posters_/es6-for-everyone.jpg",
"title": "20 - Swapping Variables with Destructuring",
"file": "https://vs1.coursehunters.net/es6-for-everyone/021.mp4",
"tracks": [
{
"kind": "captions",
"file": "https://raw.githubusercontent.com/wesbos/Wes-Bos-Captions/master/ES6/20 - Swapping Variables with Destructuring.vtt",
"label": "English",
"default": true
}
]
},
{
"mediaid": "ES6_022",
"feedid": "ES6",
"image": "https://coursehunters.net/uploads/course_posters_/es6-for-everyone.jpg",
"title": "21 - Destructuring Functions - Multiple returns and named defaults",
"file": "https://vs1.coursehunters.net/es6-for-everyone/022.mp4",
"tracks": [
{
"kind": "captions",
"file": "https://raw.githubusercontent.com/wesbos/Wes-Bos-Captions/master/ES6/21 - Destructuring Functions - Multiple returns and named defaults.vtt",
"label": "English",
"default": true
}
]
},
{
"mediaid": "ES6_023",
"feedid": "ES6",
"image": "https://coursehunters.net/uploads/course_posters_/es6-for-everyone.jpg",
"title": "22 - The for of loop",
"file": "https://vs1.coursehunters.net/es6-for-everyone/023.mp4",
"tracks": [
{
"kind": "captions",
"file": "https://raw.githubusercontent.com/wesbos/Wes-Bos-Captions/master/ES6/22 - The for of loop.vtt",
"label": "English",
"default": true
}
]
},
{
"mediaid": "ES6_024",
"feedid": "ES6",
"image": "https://coursehunters.net/uploads/course_posters_/es6-for-everyone.jpg",
"title": "23 - The for of Loop in Action",
"file": "https://vs1.coursehunters.net/es6-for-everyone/024.mp4",
"tracks": [
{
"kind": "captions",
"file": "https://raw.githubusercontent.com/wesbos/Wes-Bos-Captions/master/ES6/23 - The for of Loop in Action.vtt",
"label": "English",
"default": true
}
]
},
{
"mediaid": "ES6_025",
"feedid": "ES6",
"image": "https://coursehunters.net/uploads/course_posters_/es6-for-everyone.jpg",
"title": "24 - Using for of with Objects",
"file": "https://vs1.coursehunters.net/es6-for-everyone/025.mp4",
"tracks": [
{
"kind": "captions",
"file": "https://raw.githubusercontent.com/wesbos/Wes-Bos-Captions/master/ES6/24 - Using for of with Objects.vtt",
"label": "English",
"default": true
}
]
},
{
"mediaid": "ES6_026",
"feedid": "ES6",
"image": "https://coursehunters.net/uploads/course_posters_/es6-for-everyone.jpg",
"title": "25 - Array",
"file": "https://vs1.coursehunters.net/es6-for-everyone/026.mp4",
"tracks": [
{
"kind": "captions",
"file": "https://raw.githubusercontent.com/wesbos/Wes-Bos-Captions/master/ES6/25 - Array.vtt",
"label": "English",
"default": true
}
]
},
{
"mediaid": "ES6_027",
"feedid": "ES6",
"image": "https://coursehunters.net/uploads/course_posters_/es6-for-everyone.jpg",
"title": "26 - Array",
"file": "https://vs1.coursehunters.net/es6-for-everyone/027.mp4",
"tracks": [
{
"kind": "captions",
"file": "https://raw.githubusercontent.com/wesbos/Wes-Bos-Captions/master/ES6/26 - Array.vtt",
"label": "English",
"default": true
}
]
},
{
"mediaid": "ES6_028",
"feedid": "ES6",
"image": "https://coursehunters.net/uploads/course_posters_/es6-for-everyone.jpg",
"title": "27 - Array ",
"file": "https://vs1.coursehunters.net/es6-for-everyone/028.mp4",
"tracks": [
{
"kind": "captions",
"file": "https://raw.githubusercontent.com/wesbos/Wes-Bos-Captions/master/ES6/27 - Array .vtt",
"label": "English",
"default": true
}
]
},
{
"mediaid": "ES6_029",
"feedid": "ES6",
"image": "https://coursehunters.net/uploads/course_posters_/es6-for-everyone.jpg",
"title": "28 - Spread Operator Introduction",
"file": "https://vs1.coursehunters.net/es6-for-everyone/029.mp4",
"tracks": [
{
"kind": "captions",
"file": "https://raw.githubusercontent.com/wesbos/Wes-Bos-Captions/master/ES6/28 - Spread Operator Introduction.vtt",
"label": "English",
"default": true
}
]
},
{
"mediaid": "ES6_030",
"feedid": "ES6",
"image": "https://coursehunters.net/uploads/course_posters_/es6-for-everyone.jpg",
"title": "29 - Spread Exercise",
"file": "https://vs1.coursehunters.net/es6-for-everyone/030.mp4",
"tracks": [
{
"kind": "captions",
"file": "https://raw.githubusercontent.com/wesbos/Wes-Bos-Captions/master/ES6/29 - Spread Exercise.vtt",
"label": "English",
"default": true
}
]
},
{
"mediaid": "ES6_031",
"feedid": "ES6",
"image": "https://coursehunters.net/uploads/course_posters_/es6-for-everyone.jpg",
"title": "30 - More Spread Examples",
"file": "https://vs1.coursehunters.net/es6-for-everyone/031.mp4",
"tracks": [
{
"kind": "captions",
"file": "https://raw.githubusercontent.com/wesbos/Wes-Bos-Captions/master/ES6/30 - More Spread Examples.vtt",
"label": "English",
"default": true
}
]
},
{
"mediaid": "ES6_032",
"feedid": "ES6",
"image": "https://coursehunters.net/uploads/course_posters_/es6-for-everyone.jpg",
"title": "31 - Spreading into a function",
"file": "https://vs1.coursehunters.net/es6-for-everyone/032.mp4",
"tracks": [
{
"kind": "captions",
"file": "https://raw.githubusercontent.com/wesbos/Wes-Bos-Captions/master/ES6/31 - Spreading into a function.vtt",
"label": "English",
"default": true
}
]
},
{
"mediaid": "ES6_033",
"feedid": "ES6",
"image": "https://coursehunters.net/uploads/course_posters_/es6-for-everyone.jpg",
"title": "32 - The ...rest param in Functions and destructuring",
"file": "https://vs1.coursehunters.net/es6-for-everyone/033.mp4",
"tracks": [
{
"kind": "captions",
"file": "https://raw.githubusercontent.com/wesbos/Wes-Bos-Captions/master/ES6/32 - The .vtt",
"label": "English",
"default": true
}
]
},
{
"mediaid": "ES6_034",
"feedid": "ES6",
"image": "https://coursehunters.net/uploads/course_posters_/es6-for-everyone.jpg",
"title": "33 - Object Literal Upgrades",
"file": "https://vs1.coursehunters.net/es6-for-everyone/034.mp4",
"tracks": [
{
"kind": "captions",
"file": "https://raw.githubusercontent.com/wesbos/Wes-Bos-Captions/master/ES6/33 - Object Literal Upgrades.vtt",
"label": "English",
"default": true
}
]
},
{
"mediaid": "ES6_035",
"feedid": "ES6",
"image": "https://coursehunters.net/uploads/course_posters_/es6-for-everyone.jpg",
"title": "34 - Promises",
"file": "https://vs1.coursehunters.net/es6-for-everyone/035.mp4",
"tracks": [
{
"kind": "captions",
"file": "https://raw.githubusercontent.com/wesbos/Wes-Bos-Captions/master/ES6/34 - Promises.vtt",
"label": "English",
"default": true
}
]
},
{
"mediaid": "ES6_036",
"feedid": "ES6",
"image": "https://coursehunters.net/uploads/course_posters_/es6-for-everyone.jpg",
"title": "35 - Building your own Promises",
"file": "https://vs1.coursehunters.net/es6-for-everyone/036.mp4",
"tracks": [
{
"kind": "captions",
"file": "https://raw.githubusercontent.com/wesbos/Wes-Bos-Captions/master/ES6/35 - Building your own Promises.vtt",
"label": "English",
"default": true
}
]
},
{
"mediaid": "ES6_037",
"feedid": "ES6",
"image": "https://coursehunters.net/uploads/course_posters_/es6-for-everyone.jpg",
"title": "36 - Chaining Promises + Flow Control",
"file": "https://vs1.coursehunters.net/es6-for-everyone/037.mp4",
"tracks": [
{
"kind": "captions",
"file": "https://raw.githubusercontent.com/wesbos/Wes-Bos-Captions/master/ES6/36 - Chaining Promises + Flow Control.vtt",
"label": "English",
"default": true
}
]
},
{
"mediaid": "ES6_038",
"feedid": "ES6",
"image": "https://coursehunters.net/uploads/course_posters_/es6-for-everyone.jpg",
"title": "37 - Working with Multiple Promises",
"file": "https://vs1.coursehunters.net/es6-for-everyone/038.mp4",
"tracks": [
{
"kind": "captions",
"file": "https://raw.githubusercontent.com/wesbos/Wes-Bos-Captions/master/ES6/37 - Working with Multiple Promises.vtt",
"label": "English",
"default": true
}
]
},
{
"mediaid": "ES6_039",
"feedid": "ES6",
"image": "https://coursehunters.net/uploads/course_posters_/es6-for-everyone.jpg",
"title": "38 - All About Symbols",
"file": "https://vs1.coursehunters.net/es6-for-everyone/039.mp4",
"tracks": [
{
"kind": "captions",
"file": "https://raw.githubusercontent.com/wesbos/Wes-Bos-Captions/master/ES6/38 - All About Symbols.vtt",
"label": "English",
"default": true
}
]
},
{
"mediaid": "ES6_040",
"feedid": "ES6",
"image": "https://coursehunters.net/uploads/course_posters_/es6-for-everyone.jpg",
"title": "39 - Getting Started with ESLint",
"file": "https://vs1.coursehunters.net/es6-for-everyone/040.mp4",
"tracks": [
{
"kind": "captions",
"file": "https://raw.githubusercontent.com/wesbos/Wes-Bos-Captions/master/ES6/39 - Getting Started with ESLint.vtt",
"label": "English",
"default": true
}
]
},
{
"mediaid": "ES6_041",
"feedid": "ES6",
"image": "https://coursehunters.net/uploads/course_posters_/es6-for-everyone.jpg",
"title": "40 - Airbnb ESLint Settings",
"file": "https://vs1.coursehunters.net/es6-for-everyone/041.mp4",
"tracks": [
{
"kind": "captions",
"file": "https://raw.githubusercontent.com/wesbos/Wes-Bos-Captions/master/ES6/40 - Airbnb ESLint Settings.vtt",
"label": "English",
"default": true
}
]
},
{
"mediaid": "ES6_042",
"feedid": "ES6",
"image": "https://coursehunters.net/uploads/course_posters_/es6-for-everyone.jpg",
"title": "41 - Line and File Specific Settings",
"file": "https://vs1.coursehunters.net/es6-for-everyone/042.mp4",
"tracks": [
{
"kind": "captions",
"file": "https://raw.githubusercontent.com/wesbos/Wes-Bos-Captions/master/ES6/41 - Line and File Specific Settings.vtt",
"label": "English",
"default": true
}
]
},
{
"mediaid": "ES6_043",
"feedid": "ES6",
"image": "https://coursehunters.net/uploads/course_posters_/es6-for-everyone.jpg",
"title": "42 - ESLint Plugins",
"file": "https://vs1.coursehunters.net/es6-for-everyone/043.mp4",
"tracks": [
{
"kind": "captions",
"file": "https://raw.githubusercontent.com/wesbos/Wes-Bos-Captions/master/ES6/42 - ESLint Plugins.vtt",
"label": "English",
"default": true
}
]
},
{
"mediaid": "ES6_044",
"feedid": "ES6",
"image": "https://coursehunters.net/uploads/course_posters_/es6-for-everyone.jpg",
"title": "43 - ESLint inside Atom and Sublime Text",
"file": "https://vs1.coursehunters.net/es6-for-everyone/044.mp4",
"tracks": [
{
"kind": "captions",
"file": "https://raw.githubusercontent.com/wesbos/Wes-Bos-Captions/master/ES6/43 - ESLint inside Atom and Sublime Text.vtt",
"label": "English",
"default": true
}
]
},
{
"mediaid": "ES6_045",
"feedid": "ES6",
"image": "https://coursehunters.net/uploads/course_posters_/es6-for-everyone.jpg",
"title": "44 - Only Allow ESLint Passing Code into your git repos",
"file": "https://vs1.coursehunters.net/es6-for-everyone/045.mp4",
"tracks": [
{
"kind": "captions",
"file": "https://raw.githubusercontent.com/wesbos/Wes-Bos-Captions/master/ES6/44 - Only Allow ESLint Passing Code into your git repos.vtt",
"label": "English",
"default": true
}
]
},
{
"mediaid": "ES6_046",
"feedid": "ES6",
"image": "https://coursehunters.net/uploads/course_posters_/es6-for-everyone.jpg",
"title": "45 - JavaScript Modules and WebPack 2 Tooling Setup",
"file": "https://vs1.coursehunters.net/es6-for-everyone/046.mp4",
"tracks": [
{
"kind": "captions",
"file": "https://raw.githubusercontent.com/wesbos/Wes-Bos-Captions/master/ES6/45 - JavaScript Modules and WebPack 2 Tooling Setup.vtt",
"label": "English",
"default": true
}
]
},
{
"mediaid": "ES6_047",
"feedid": "ES6",
"image": "https://coursehunters.net/uploads/course_posters_/es6-for-everyone.jpg",
"title": "46 - Creating your own Modules",
"file": "https://vs1.coursehunters.net/es6-for-everyone/047.mp4",
"tracks": [
{
"kind": "captions",
"file": "https://raw.githubusercontent.com/wesbos/Wes-Bos-Captions/master/ES6/46 - Creating your own Modules.vtt",
"label": "English",
"default": true
}
]
},
{
"mediaid": "ES6_048",
"feedid": "ES6",
"image": "https://coursehunters.net/uploads/course_posters_/es6-for-everyone.jpg",
"title": "47 - More ES6 Module Practice",
"file": "https://vs1.coursehunters.net/es6-for-everyone/048.mp4",
"tracks": [
{
"kind": "captions",
"file": "https://raw.githubusercontent.com/wesbos/Wes-Bos-Captions/master/ES6/47 - More ES6 Module Practice.vtt",
"label": "English",
"default": true
}
]
},
{
"mediaid": "ES6_049",
"feedid": "ES6",
"image": "https://coursehunters.net/uploads/course_posters_/es6-for-everyone.jpg",
"title": "48 - Tool-Free Modules with SystemJS (+bonus BrowserSync setup)",
"file": "https://vs1.coursehunters.net/es6-for-everyone/049.mp4",
"tracks": [
{
"kind": "captions",
"file": "https://raw.githubusercontent.com/wesbos/Wes-Bos-Captions/master/ES6/48 - Tool-Free Modules with SystemJS (+bonus BrowserSync setup).vtt",
"label": "English",
"default": true
}
]
},
{
"mediaid": "ES6_050",
"feedid": "ES6",
"image": "https://coursehunters.net/uploads/course_posters_/es6-for-everyone.jpg",
"title": "49 - All About Babel + npm scripts",
"file": "https://vs1.coursehunters.net/es6-for-everyone/050.mp4",
"tracks": [
{
"kind": "captions",
"file": "https://raw.githubusercontent.com/wesbos/Wes-Bos-Captions/master/ES6/49 - All About Babel + npm scripts.vtt",
"label": "English",
"default": true
}
]
},
{
"mediaid": "ES6_051",
"feedid": "ES6",
"image": "https://coursehunters.net/uploads/course_posters_/es6-for-everyone.jpg",
"title": "50 - Polyfilling ES6 for Older Browsers",
"file": "https://vs1.coursehunters.net/es6-for-everyone/051.mp4",
"tracks": [
{
"kind": "captions",
"file": "https://raw.githubusercontent.com/wesbos/Wes-Bos-Captions/master/ES6/50 - Polyfilling ES6 for Older Browsers.vtt",
"label": "English",
"default": true
}
]
},
{
"mediaid": "ES6_052",
"feedid": "ES6",
"image": "https://coursehunters.net/uploads/course_posters_/es6-for-everyone.jpg",
"title": "51 - Prototypal Inheritance Review",
"file": "https://vs1.coursehunters.net/es6-for-everyone/052.mp4",
"tracks": [
{
"kind": "captions",
"file": "https://raw.githubusercontent.com/wesbos/Wes-Bos-Captions/master/ES6/51 - Prototypal Inheritance Review.vtt",
"label": "English",
"default": true
}
]
},
{
"mediaid": "ES6_053",
"feedid": "ES6",
"image": "https://coursehunters.net/uploads/course_posters_/es6-for-everyone.jpg",
"title": "52 - Say Hello to Classes",
"file": "https://vs1.coursehunters.net/es6-for-everyone/053.mp4",
"tracks": [
{
"kind": "captions",
"file": "https://raw.githubusercontent.com/wesbos/Wes-Bos-Captions/master/ES6/52 - Say Hello to Classes.vtt",
"label": "English",
"default": true
}
]
},
{
"mediaid": "ES6_054",
"feedid": "ES6",
"image": "https://coursehunters.net/uploads/course_posters_/es6-for-everyone.jpg",
"title": "53 - Extending Classes and using super()",
"file": "https://vs1.coursehunters.net/es6-for-everyone/054.mp4",
"tracks": [
{
"kind": "captions",
"file": "https://raw.githubusercontent.com/wesbos/Wes-Bos-Captions/master/ES6/53 - Extending Classes and using super().vtt",
"label": "English",
"default": true
}
]
},
{
"mediaid": "ES6_055",
"feedid": "ES6",
"image": "https://coursehunters.net/uploads/course_posters_/es6-for-everyone.jpg",
"title": "54 - Extending Arrays with Classes for Custom Collections",
"file": "https://vs1.coursehunters.net/es6-for-everyone/055.mp4",
"tracks": [
{
"kind": "captions",
"file": "https://raw.githubusercontent.com/wesbos/Wes-Bos-Captions/master/ES6/54 - Extending Arrays with Classes for Custom Collections.vtt",
"label": "English",
"default": true
}
]
},
{
"mediaid": "ES6_056",
"feedid": "ES6",
"image": "https://coursehunters.net/uploads/course_posters_/es6-for-everyone.jpg",
"title": "55 - Introducing Generators",
"file": "https://vs1.coursehunters.net/es6-for-everyone/056.mp4",
"tracks": [
{
"kind": "captions",
"file": "https://raw.githubusercontent.com/wesbos/Wes-Bos-Captions/master/ES6/55 - Introducing Generators.vtt",
"label": "English",
"default": true
}
]
},
{
"mediaid": "ES6_057",
"feedid": "ES6",
"image": "https://coursehunters.net/uploads/course_posters_/es6-for-everyone.jpg",
"title": "56 - Using Generators for Ajax Flow Control",
"file": "https://vs1.coursehunters.net/es6-for-everyone/057.mp4",
"tracks": [
{
"kind": "captions",
"file": "https://raw.githubusercontent.com/wesbos/Wes-Bos-Captions/master/ES6/56 - Using Generators for Ajax Flow Control.vtt",
"label": "English",
"default": true
}
]
},
{
"mediaid": "ES6_058",
"feedid": "ES6",
"image": "https://coursehunters.net/uploads/course_posters_/es6-for-everyone.jpg",
"title": "57 - Looping Generators with for of",
"file": "https://vs1.coursehunters.net/es6-for-everyone/058.mp4",
"tracks": [
{
"kind": "captions",
"file": "https://raw.githubusercontent.com/wesbos/Wes-Bos-Captions/master/ES6/57 - Looping Generators with for of.vtt",
"label": "English",
"default": true
}
]
},
{
"mediaid": "ES6_059",
"feedid": "ES6",
"image": "https://coursehunters.net/uploads/course_posters_/es6-for-everyone.jpg",
"title": "58 - What are Proxies?",
"file": "https://vs1.coursehunters.net/es6-for-everyone/059.mp4",
"tracks": [
{
"kind": "captions",
"file": "https://raw.githubusercontent.com/wesbos/Wes-Bos-Captions/master/ES6/58 - What are Proxies?.vtt",
"label": "English",
"default": true
}
]
},
{
"mediaid": "ES6_060",
"feedid": "ES6",
"image": "https://coursehunters.net/uploads/course_posters_/es6-for-everyone.jpg",
"title": "59 - Another Proxy Example",
"file": "https://vs1.coursehunters.net/es6-for-everyone/060.mp4",
"tracks": [
{
"kind": "captions",
"file": "https://raw.githubusercontent.com/wesbos/Wes-Bos-Captions/master/ES6/59 - Another Proxy Example.vtt",
"label": "English",
"default": true
}
]
},
{
"mediaid": "ES6_061",
"feedid": "ES6",
"image": "https://coursehunters.net/uploads/course_posters_/es6-for-everyone.jpg",
"title": "60 - Using Proxies to combat silly errors",
"file": "https://vs1.coursehunters.net/es6-for-everyone/061.mp4",
"tracks": [
{
"kind": "captions",
"file": "https://raw.githubusercontent.com/wesbos/Wes-Bos-Captions/master/ES6/60 - Using Proxies to combat silly errors.vtt",
"label": "English",
"default": true
}
]
},
{
"mediaid": "ES6_062",
"feedid": "ES6",
"image": "https://coursehunters.net/uploads/course_posters_/es6-for-everyone.jpg",
"title": "61 - Sets and WeakSets",
"file": "https://vs1.coursehunters.net/es6-for-everyone/062.mp4",
"tracks": [
{
"kind": "captions",
"file": "https://raw.githubusercontent.com/wesbos/Wes-Bos-Captions/master/ES6/61 - Sets and WeakSets.vtt",
"label": "English",
"default": true
}
]
},
{
"mediaid": "ES6_063",
"feedid": "ES6",
"image": "https://coursehunters.net/uploads/course_posters_/es6-for-everyone.jpg",
"title": "62 - Understanding Sets with Brunch",
"file": "https://vs1.coursehunters.net/es6-for-everyone/063.mp4",
"tracks": [
{
"kind": "captions",
"file": "https://raw.githubusercontent.com/wesbos/Wes-Bos-Captions/master/ES6/62 - Understanding Sets with Brunch.vtt",
"label": "English",
"default": true
}
]
},
{
"mediaid": "ES6_064",
"feedid": "ES6",
"image": "https://coursehunters.net/uploads/course_posters_/es6-for-everyone.jpg",
"title": "63 - WeakSets",
"file": "https://vs1.coursehunters.net/es6-for-everyone/064.mp4",
"tracks": [
{
"kind": "captions",
"file": "https://raw.githubusercontent.com/wesbos/Wes-Bos-Captions/master/ES6/63 - WeakSets.vtt",
"label": "English",
"default": true
}
]
},
{
"mediaid": "ES6_065",
"feedid": "ES6",
"image": "https://coursehunters.net/uploads/course_posters_/es6-for-everyone.jpg",
"title": "64 - Map and Weak Map",
"file": "https://vs1.coursehunters.net/es6-for-everyone/065.mp4",
"tracks": [
{
"kind": "captions",
"file": "https://raw.githubusercontent.com/wesbos/Wes-Bos-Captions/master/ES6/64 - Map and Weak Map.vtt",
"label": "English",
"default": true
}
]
},
{
"mediaid": "ES6_066",
"feedid": "ES6",
"image": "https://coursehunters.net/uploads/course_posters_/es6-for-everyone.jpg",
"title": "65 - Map Metadata with DOM Node Keys",
"file": "https://vs1.coursehunters.net/es6-for-everyone/066.mp4",
"tracks": [
{
"kind": "captions",
"file": "https://raw.githubusercontent.com/wesbos/Wes-Bos-Captions/master/ES6/65 - Map Metadata with DOM Node Keys.vtt",
"label": "English",
"default": true
}
]
},
{
"mediaid": "ES6_067",
"feedid": "ES6",
"image": "https://coursehunters.net/uploads/course_posters_/es6-for-everyone.jpg",
"title": "66 - WeakMap and Garbage Collection",
"file": "https://vs1.coursehunters.net/es6-for-everyone/067.mp4",
"tracks": [
{
"kind": "captions",
"file": "https://raw.githubusercontent.com/wesbos/Wes-Bos-Captions/master/ES6/66 - WeakMap and Garbage Collection.vtt",
"label": "English",
"default": true
}
]
},
{
"mediaid": "ES6_068",
"feedid": "ES6",
"image": "https://coursehunters.net/uploads/course_posters_/es6-for-everyone.jpg",
"title": "67 - Async Await - Native Promises Review",
"file": "https://www.dropbox.com/s/rnol0p73l03ujqm/67%20-%20Async%20Await%20-%20Native%20Promises%20Review.mp4",
"tracks": [
{
"kind": "captions",
"file": "https://raw.githubusercontent.com/wesbos/Wes-Bos-Captions/master/ES6/67 - Async Await - Native Promises Review.vtt",
"label": "English",
"default": true
}
]
},
{
"mediaid": "ES6_069",
"feedid": "ES6",
"image": "https://coursehunters.net/uploads/course_posters_/es6-for-everyone.jpg",
"title": "68 - Async Await - Custom Promises Review",
"file": "https://www.dropbox.com/s/pgpjstotn59lszo/68%20-%20Async%20Await%20-%20Custom%20Promises%20Review.mp4",
"tracks": [
{
"kind": "captions",
"file": "https://raw.githubusercontent.com/wesbos/Wes-Bos-Captions/master/ES6/68 - Async Await - Custom Promises Review.vtt",
"label": "English",
"default": true
}
]
},
{
"mediaid": "ES6_070",
"feedid": "ES6",
"image": "https://coursehunters.net/uploads/course_posters_/es6-for-everyone.jpg",
"title": "69 - All About Async + Await",
"file": "https://www.dropbox.com/s/wwq49w6cezwym2i/69%20-%20All%20About%20Async%20%2B%20Await.mp4",
"tracks": [
{
"kind": "captions",
"file": "https://raw.githubusercontent.com/wesbos/Wes-Bos-Captions/master/ES6/69 - All About Async + Await.vtt",
"label": "English",
"default": true
}
]
},
{
"mediaid": "ES6_071",
"feedid": "ES6",
"image": "https://coursehunters.net/uploads/course_posters_/es6-for-everyone.jpg",
"title": "70 - Async + Await Error Handling",
"file": "https://www.dropbox.com/s/p4z7wfgo25irttd/70%20-%20Async%20%2B%20Await%20Error%20Handling.mp4",
"tracks": [
{
"kind": "captions",
"file": "https://raw.githubusercontent.com/wesbos/Wes-Bos-Captions/master/ES6/70 - Async + Await Error Handling.vtt",
"label": "English",
"default": true
}
]
},
{
"mediaid": "ES6_072",
"feedid": "ES6",
"image": "https://coursehunters.net/uploads/course_posters_/es6-for-everyone.jpg",
"title": "71 - Waiting on Multiple Promises",
"file": "https://vs1.coursehunters.net/es6-for-everyone/072.mp4",
"tracks": [
{
"kind": "captions",
"file": "https://raw.githubusercontent.com/wesbos/Wes-Bos-Captions/master/ES6/71 - Waiting on Multiple Promises.vtt",
"label": "English",
"default": true
}
]
},
{
"mediaid": "ES6_073",
"feedid": "ES6",
"image": "https://coursehunters.net/uploads/course_posters_/es6-for-everyone.jpg",
"title": "72 - Promisifying Callback Based Functions",
"file": "https://vs1.coursehunters.net/es6-for-everyone/073.mp4",
"tracks": [
{
"kind": "captions",
"file": "https://raw.githubusercontent.com/wesbos/Wes-Bos-Captions/master/ES6/72 - Promisifying Callback Based Functions.vtt",
"label": "English",
"default": true
}
]
},
{
"mediaid": "ES6_074",
"feedid": "ES6",
"image": "https://coursehunters.net/uploads/course_posters_/es6-for-everyone.jpg",
"title": "73 - Class Properties",
"file": "https://vs1.coursehunters.net/es6-for-everyone/074.mp4",
"tracks": [
{
"kind": "captions",
"file": "https://raw.githubusercontent.com/wesbos/Wes-Bos-Captions/master/ES6/73 - Class Properties.vtt",
"label": "English",
"default": true
}
]
},
{
"mediaid": "ES6_075",
"feedid": "ES6",
"image": "https://coursehunters.net/uploads/course_posters_/es6-for-everyone.jpg",
"title": "74 - padStart and padEnd",
"file": "https://vs1.coursehunters.net/es6-for-everyone/075.mp4",
"tracks": [
{
"kind": "captions",
"file": "https://raw.githubusercontent.com/wesbos/Wes-Bos-Captions/master/ES6/74 - padStart and padEnd.vtt",
"label": "English",
"default": true
}
]
},
{
"mediaid": "ES6_076",
"feedid": "ES6",
"image": "https://coursehunters.net/uploads/course_posters_/es6-for-everyone.jpg",
"title": "75 - ES7 Exponential Operator",
"file": "https://vs1.coursehunters.net/es6-for-everyone/076.mp4",
"tracks": [
{
"kind": "captions",
"file": "https://raw.githubusercontent.com/wesbos/Wes-Bos-Captions/master/ES6/75 - ES7 Exponential Operator.vtt",
"label": "English",
"default": true
}
]
},
{
"mediaid": "ES6_077",
"feedid": "ES6",
"image": "https://coursehunters.net/uploads/course_posters_/es6-for-everyone.jpg",
"title": "76 - Function Arguments Trailing Comma",
"file": "https://vs1.coursehunters.net/es6-for-everyone/077.mp4",
"tracks": [
{
"kind": "captions",
"file": "https://raw.githubusercontent.com/wesbos/Wes-Bos-Captions/master/ES6/76 - Function Arguments Trailing Comma.vtt",
"label": "English",
"default": true
}
]
},
{
"mediaid": "ES6_078",
"feedid": "ES6",
"image": "https://coursehunters.net/uploads/course_posters_/es6-for-everyone.jpg",
"title": "77 - Object",
"file": "https://vs1.coursehunters.net/es6-for-everyone/078.mp4",
"tracks": [
{
"kind": "captions",
"file": "https://raw.githubusercontent.com/wesbos/Wes-Bos-Captions/master/ES6/77 - Object.vtt",
"label": "English",
"default": true
}
]
}
]
}
{
"description": "Learn css grid with wes bos in 25 pretty good videos from fundamentals to real world in about 4 hours.",
"title": "CSS GRID",
"feedid": "GRID",
"kind": "DYNAMIC",
"playlist": [
{
"mediaid": "GRID_01",
"feedid": "GRID",
"image": "https://courses.wesbos.com/images/GRID/thumbs/1.png",
"title": "01 - CSS Grid introduction",
"file": "https://vs1.coursehunters.net/wesbos-css-grid/lesson1.mp4",
"tracks": [
{
"kind": "captions",
"file": "https://raw.githubusercontent.com/wesbos/Wes-Bos-Captions/master/RFB/01 - CSS Grid introduction.vtt",
"label": "English",
"default": true
}
]
},
{
"mediaid": "GRID_02",
"feedid": "GRID",
"image": "https://res.cloudinary.com/wesbos/image/fetch/w_200,q_auto,f_auto/https://courses.wesbos.com/images/GRID/thumbs/2.png",
"title": "02 - Starter Files and Tooling Setup",
"file": "https://vs1.coursehunters.net/wesbos-css-grid/lesson2.mp4",
"tracks": [
{
"kind": "captions",
"file": "https://raw.githubusercontent.com/wesbos/Wes-Bos-Captions/master/RFB/02 - Starter Files and Tooling Setup.vtt",
"label": "English",
"default": true
}
]
},
{
"mediaid": "GRID_03",
"feedid": "GRID",
"image": "https://res.cloudinary.com/wesbos/image/fetch/w_200,q_auto,f_auto/https://courses.wesbos.com/images/GRID/thumbs/3.png",
"title": "03 - CSS Grid Fundamentals",
"file": "https://vs1.coursehunters.net/wesbos-css-grid/lesson3.mp4",
"tracks": [
{
"kind": "captions",
"file": "https://raw.githubusercontent.com/wesbos/Wes-Bos-Captions/master/RFB/03 - CSS Grid Fundamentals.vtt",
"label": "English",
"default": true
}
]
},
{
"mediaid": "GRID_04",
"feedid": "GRID",
"image": "https://res.cloudinary.com/wesbos/image/fetch/w_200,q_auto,f_auto/https://courses.wesbos.com/images/GRID/thumbs/4.png",
"title": "04 - CSS Grid Dev Tools",
"file": "https://vs1.coursehunters.net/wesbos-css-grid/lesson4.mp4",
"tracks": [
{
"kind": "captions",
"file": "https://raw.githubusercontent.com/wesbos/Wes-Bos-Captions/master/RFB/04 - CSS Grid Dev Tools.vtt",
"label": "English",
"default": true
}
]
},
{
"mediaid": "GRID_05",
"feedid": "GRID",
"image": "https://res.cloudinary.com/wesbos/image/fetch/w_200,q_auto,f_auto/https://courses.wesbos.com/images/GRID/thumbs/5.png",
"title": "05 - CSS Grid Implicit vs Explicit Tracks",
"file": "https://vs1.coursehunters.net/wesbos-css-grid/lesson5.mp4",
"tracks": [
{
"kind": "captions",
"file": "https://raw.githubusercontent.com/wesbos/Wes-Bos-Captions/master/RFB/05 - CSS Grid Implicit vs Explicit Tracks.vtt",
"label": "English",
"default": true
}
]
},
{
"mediaid": "GRID_06",
"feedid": "GRID",
"image": "https://res.cloudinary.com/wesbos/image/fetch/w_200,q_auto,f_auto/https://courses.wesbos.com/images/GRID/thumbs/6.png",
"title": "06 - CSS grid-auto-flow Explained",
"file": "https://vs1.coursehunters.net/wesbos-css-grid/lesson6.mp4",
"tracks": [
{
"kind": "captions",
"file": "https://raw.githubusercontent.com/wesbos/Wes-Bos-Captions/master/RFB/06 - CSS grid-auto-flow Explained.vtt",
"label": "English",
"default": true
}
]
},
{
"mediaid": "GRID_07",
"feedid": "GRID",
"image": "https://res.cloudinary.com/wesbos/image/fetch/w_200,q_auto,f_auto/https://courses.wesbos.com/images/GRID/thumbs/7.png",
"title": "07 - Sizing tracks in CSS Grid",
"file": "https://vs1.coursehunters.net/wesbos-css-grid/lesson7.mp4",
"tracks": [
{
"kind": "captions",
"file": "https://raw.githubusercontent.com/wesbos/Wes-Bos-Captions/master/RFB/07 - Sizing tracks in CSS Grid.vtt",
"label": "English",
"default": true
}
]
},
{
"mediaid": "GRID_08",
"feedid": "GRID",
"image": "https://res.cloudinary.com/wesbos/image/fetch/w_200,q_auto,f_auto/https://courses.wesbos.com/images/GRID/thumbs/8.png",
"title": "08 - CSS Grid repeat function",
"file": "https://vs1.coursehunters.net/wesbos-css-grid/lesson8.mp4",
"tracks": [
{
"kind": "captions",
"file": "https://raw.githubusercontent.com/wesbos/Wes-Bos-Captions/master/RFB/08 - CSS Grid repeat function.vtt",
"label": "English",
"default": true
}
]
},
{
"mediaid": "GRID_09",
"feedid": "GRID",
"image": "https://res.cloudinary.com/wesbos/image/fetch/w_200,q_auto,f_auto/https://courses.wesbos.com/images/GRID/thumbs/9.png",
"title": "09 - Sizing Grid Items",
"file": "https://vs1.coursehunters.net/wesbos-css-grid/lesson9.mp4",
"tracks": [
{
"kind": "captions",
"file": "https://raw.githubusercontent.com/wesbos/Wes-Bos-Captions/master/RFB/09 - Sizing Grid Items.vtt",
"label": "English",
"default": true
}
]
},
{
"mediaid": "GRID_010",
"feedid": "GRID",
"image": "https://res.cloudinary.com/wesbos/image/fetch/w_200,q_auto,f_auto/https://courses.wesbos.com/images/GRID/thumbs/10.png",
"title": "10 - Placing Grid Items",
"file": "https://vs1.coursehunters.net/wesbos-css-grid/lesson10.mp4",
"tracks": [
{
"kind": "captions",
"file": "https://raw.githubusercontent.com/wesbos/Wes-Bos-Captions/master/RFB/10 - Placing Grid Items.vtt",
"label": "English",
"default": true
}
]
},
{
"mediaid": "GRID_011",
"feedid": "GRID",
"image": "https://res.cloudinary.com/wesbos/image/fetch/w_200,q_auto,f_auto/https://courses.wesbos.com/images/GRID/thumbs/11.png",
"title": "11 - Spanning and Placing Cardio",
"file": "https://vs1.coursehunters.net/wesbos-css-grid/lesson11.mp4",
"tracks": [
{
"kind": "captions",
"file": "https://raw.githubusercontent.com/wesbos/Wes-Bos-Captions/master/RFB/11 - Spanning and Placing Cardio.vtt",
"label": "English",
"default": true
}
]
},
{
"mediaid": "GRID_012",
"feedid": "GRID",
"image": "https://res.cloudinary.com/wesbos/image/fetch/w_200,q_auto,f_auto/https://courses.wesbos.com/images/GRID/thumbs/12.png",
"title": "12 - auto-fit and auto-fill",
"file": "https://vs1.coursehunters.net/wesbos-css-grid/lesson12.mp4",
"tracks": [
{
"kind": "captions",
"file": "https://raw.githubusercontent.com/wesbos/Wes-Bos-Captions/master/RFB/12 - auto-fit and auto-fill.vtt",
"label": "English",
"default": true
}
]
},
{
"mediaid": "GRID_013",
"feedid": "GRID",
"image": "https://res.cloudinary.com/wesbos/image/fetch/w_200,q_auto,f_auto/https://courses.wesbos.com/images/GRID/thumbs/13.png",
"title": "13 - Using minmax() for Responsive Grids",
"file": "https://vs1.coursehunters.net/wesbos-css-grid/lesson13.mp4",
"tracks": [
{
"kind": "captions",
"file": "https://raw.githubusercontent.com/wesbos/Wes-Bos-Captions/master/RFB/13 - Using minmax() for Responsive Grids.vtt",
"label": "English",
"default": true
}
]
},
{
"mediaid": "GRID_014",
"feedid": "GRID",
"image": "https://res.cloudinary.com/wesbos/image/fetch/w_200,q_auto,f_auto/https://courses.wesbos.com/images/GRID/thumbs/14.png",
"title": "14 - Grid Template Areas",
"file": "https://vs1.coursehunters.net/wesbos-css-grid/lesson14.mp4",
"tracks": [
{
"kind": "captions",
"file": "https://raw.githubusercontent.com/wesbos/Wes-Bos-Captions/master/RFB/14 - Grid Template Areas.vtt",
"label": "English",
"default": true
}
]
},
{
"mediaid": "GRID_015",
"feedid": "GRID",
"image": "https://res.cloudinary.com/wesbos/image/fetch/w_200,q_auto,f_auto/https://courses.wesbos.com/images/GRID/thumbs/15.png",
"title": "15 - Naming Lines in CSS Grid",
"file": "https://vs1.coursehunters.net/wesbos-css-grid/lesson15.mp4",
"tracks": [
{
"kind": "captions",
"file": "https://raw.githubusercontent.com/wesbos/Wes-Bos-Captions/master/RFB/15 - Naming Lines in CSS Grid.vtt",
"label": "English",
"default": true
}
]
},
{
"mediaid": "GRID_016",
"feedid": "GRID",
"image": "https://res.cloudinary.com/wesbos/image/fetch/w_200,q_auto,f_auto/https://courses.wesbos.com/images/GRID/thumbs/16.png",
"title": "16 - grid-auto-flow dense Block Fitting",
"file": "https://vs1.coursehunters.net/wesbos-css-grid/lesson16.mp4",
"tracks": [
{
"kind": "captions",
"file": "https://raw.githubusercontent.com/wesbos/Wes-Bos-Captions/master/RFB/16 - grid-auto-flow dense Block Fitting.vtt",
"label": "English",
"default": true
}
]
},
{
"mediaid": "GRID_017",
"feedid": "GRID",
"image": "https://res.cloudinary.com/wesbos/image/fetch/w_200,q_auto,f_auto/https://courses.wesbos.com/images/GRID/thumbs/17.png",
"title": "17 - CSS Grid Alignment + Centering",
"file": "https://vs1.coursehunters.net/wesbos-css-grid/lesson17.mp4",
"tracks": [
{
"kind": "captions",
"file": "https://raw.githubusercontent.com/wesbos/Wes-Bos-Captions/master/RFB/17 - CSS Grid Alignment + Centering.vtt",
"label": "English",
"default": true
}
]
},
{
"mediaid": "GRID_018",
"feedid": "GRID",
"image": "https://res.cloudinary.com/wesbos/image/fetch/w_200,q_auto,f_auto/https://courses.wesbos.com/images/GRID/thumbs/18.png",
"title": "18 - Re-ordering Grid Items",
"file": "https://vs1.coursehunters.net/wesbos-css-grid/lesson18.mp4",
"tracks": [
{
"kind": "captions",
"file": "https://raw.githubusercontent.com/wesbos/Wes-Bos-Captions/master/RFB/18 - Re-ordering Grid Items.vtt",
"label": "English",
"default": true
}
]
},
{
"mediaid": "GRID_019",
"feedid": "GRID",
"image": "https://res.cloudinary.com/wesbos/image/fetch/w_200,q_auto,f_auto/https://courses.wesbos.com/images/GRID/thumbs/19.png",
"title": "19 - Nesting Grid with Album Layouts",
"file": "https://vs1.coursehunters.net/wesbos-css-grid/lesson19.mp4",
"tracks": [
{
"kind": "captions",
"file": "https://raw.githubusercontent.com/wesbos/Wes-Bos-Captions/master/RFB/19 - Nesting Grid with Album Layouts.vtt",
"label": "English",
"default": true
}
]
},
{
"mediaid": "GRID_020",
"feedid": "GRID",
"image": "https://res.cloudinary.com/wesbos/image/fetch/w_200,q_auto,f_auto/https://courses.wesbos.com/images/GRID/thumbs/20.png",
"title": "20 - CSS Grid Image Gallery",
"file": "https://vs1.coursehunters.net/wesbos-css-grid/lesson20.mp4",
"tracks": [
{
"kind": "captions",
"file": "https://raw.githubusercontent.com/wesbos/Wes-Bos-Captions/master/RFB/20 - CSS Grid Image Gallery.vtt",
"label": "English",
"default": true
}
]
},
{
"mediaid": "GRID_021",
"feedid": "GRID",
"image": "https://res.cloudinary.com/wesbos/image/fetch/w_200,q_auto,f_auto/https://courses.wesbos.com/images/GRID/thumbs/21.png",
"title": "21 - Flexbox vs CSS Grid",
"file": "https://vs1.coursehunters.net/wesbos-css-grid/lesson21.mp4",
"tracks": [
{
"kind": "captions",
"file": "https://raw.githubusercontent.com/wesbos/Wes-Bos-Captions/master/RFB/21 - Flexbox vs CSS Grid.vtt",
"label": "English",
"default": true
}
]
},
{
"mediaid": "GRID_022",
"feedid": "GRID",
"image": "https://res.cloudinary.com/wesbos/image/fetch/w_200,q_auto,f_auto/https://courses.wesbos.com/images/GRID/thumbs/22.png",
"title": "22 - Recreating Codepen",
"file": "https://vs1.coursehunters.net/wesbos-css-grid/lesson22.mp4",
"tracks": [
{
"kind": "captions",
"file": "https://raw.githubusercontent.com/wesbos/Wes-Bos-Captions/master/RFB/22 - Recreating Codepen.vtt",
"label": "English",
"default": true
}
]
},
{
"mediaid": "GRID_023",
"feedid": "GRID",
"image": "https://res.cloudinary.com/wesbos/image/fetch/w_200,q_auto,f_auto/https://courses.wesbos.com/images/GRID/thumbs/23.png",
"title": "23 - Bootstrappy Grid with CSS Variables",
"file": "https://vs1.coursehunters.net/wesbos-css-grid/lesson23.mp4",
"tracks": [
{
"kind": "captions",
"file": "https://raw.githubusercontent.com/wesbos/Wes-Bos-Captions/master/RFB/23 - Bootstrappy Grid with CSS Variables.vtt",
"label": "English",
"default": true
}
]
},
{
"mediaid": "GRID_024",
"feedid": "GRID",
"image": "https://res.cloudinary.com/wesbos/image/fetch/w_200,q_auto,f_auto/https://courses.wesbos.com/images/GRID/thumbs/24.png",
"title": "24 - Responsive Website",
"file": "https://vs1.coursehunters.net/wesbos-css-grid/lesson24.mp4",
"tracks": [
{
"kind": "captions",
"file": "https://raw.githubusercontent.com/wesbos/Wes-Bos-Captions/master/RFB/24 - Responsive Website.vtt",
"label": "English",
"default": true
}
]
},
{
"mediaid": "GRID_025",
"feedid": "GRID",
"image": "https://res.cloudinary.com/wesbos/image/fetch/w_200,q_auto,f_auto/https://courses.wesbos.com/images/GRID/thumbs/25.png",
"title": "25 - Full Bleed Blog Layout",
"file": "https://vs1.coursehunters.net/wesbos-css-grid/lesson25.mp4",
"tracks": [
{
"kind": "captions",
"file": "https://raw.githubusercontent.com/wesbos/Wes-Bos-Captions/master/RFB/25 - Full Bleed Blog Layout.vtt",
"label": "English",
"default": true
}
]
}
]
}
{
"title": "NODE",
"description": "ES6 for Everyone — The best way to learn modern ES6 JavaScript",
"feedid": "NODE",
"kind": "DYNAMIC",
"playlist":[
{
"mediaid": "NODE_01",
"feedid": "NODE",
"image": "https://f000.backblazeb2.com/file/bosmonster-images/small0.png",
"title": "01 - Getting Setup",
"file": "https://vs1.coursehunters.net/wesbos-node/lesson1.mp4",
"tracks": [
{
"kind": "captions",
"file": "https://raw.githubusercontent.com/wesbos/Wes-Bos-Captions/master/NODE/01 - Getting Setup.vtt",
"label": "English",
"default": true
}
]
} ,
{
"mediaid": "NODE_02",
"feedid": "NODE",
"image": "https://f000.backblazeb2.com/file/bosmonster-images/small1.png",
"title": "02 - Setting up Mongo DB",
"file": "https://vs1.coursehunters.net/wesbos-node/lesson2.mp4",
"tracks": [
{
"kind": "captions",
"file": "https://raw.githubusercontent.com/wesbos/Wes-Bos-Captions/master/NODE/02 - Setting up Mongo DB.vtt",
"label": "English",
"default": true
}
]
} ,
{
"mediaid": "NODE_03",
"feedid": "NODE",
"image": "https://f000.backblazeb2.com/file/bosmonster-images/small2.png",
"title": "03 - Starter Files and Environmental Variables",
"file": "https://vs1.coursehunters.net/wesbos-node/lesson3.mp4",
"tracks": [
{
"kind": "captions",
"file": "https://raw.githubusercontent.com/wesbos/Wes-Bos-Captions/master/NODE/03 - Starter Files and Environmental Variables.vtt",
"label": "English",
"default": true
}
]
} ,
{
"mediaid": "NODE_04",
"feedid": "NODE",
"image": "https://f000.backblazeb2.com/file/bosmonster-images/small3.png",
"title": "04 - Core Concept - Routing",
"file": "https://vs1.coursehunters.net/wesbos-node/lesson4.mp4",
"tracks": [
{
"kind": "captions",
"file": "https://raw.githubusercontent.com/wesbos/Wes-Bos-Captions/master/NODE/04 - Core Concept - Routing.vtt",
"label": "English",
"default": true
}
]
} ,
{
"mediaid": "NODE_05",
"feedid": "NODE",
"image": "https://f000.backblazeb2.com/file/bosmonster-images/small4.png",
"title": "05 - Core Concept - Templating",
"file": "https://vs1.coursehunters.net/wesbos-node/lesson5.mp4",
"tracks": [
{
"kind": "captions",
"file": "https://raw.githubusercontent.com/wesbos/Wes-Bos-Captions/master/NODE/05 - Core Concept - Templating.vtt",
"label": "English",
"default": true
}
]
} ,
{
"mediaid": "NODE_06",
"feedid": "NODE",
"image": "https://f000.backblazeb2.com/file/bosmonster-images/small5.png",
"title": "06 - Core Concept - Template Helpers",
"file": "https://vs1.coursehunters.net/wesbos-node/lesson6.mp4",
"tracks": [
{
"kind": "captions",
"file": "https://raw.githubusercontent.com/wesbos/Wes-Bos-Captions/master/NODE/06 - Core Concept - Template Helpers.vtt",
"label": "English",
"default": true
}
]
} ,
{
"mediaid": "NODE_07",
"feedid": "NODE",
"image": "https://f000.backblazeb2.com/file/bosmonster-images/small6.png",
"title": "07 - Core Concept - Controllers and the MVC Pattern",
"file": "https://vs1.coursehunters.net/wesbos-node/lesson7.mp4",
"tracks": [
{
"kind": "captions",
"file": "https://raw.githubusercontent.com/wesbos/Wes-Bos-Captions/master/NODE/07 - Core Concept - Controllers and the MVC Pattern.vtt",
"label": "English",
"default": true
}
]
} ,
{
"mediaid": "NODE_08",
"feedid": "NODE",
"image": "https://f000.backblazeb2.com/file/bosmonster-images/small7.png",
"title": "08 - Core Concept - Middleware and Error Handling",
"file": "https://vs1.coursehunters.net/wesbos-node/lesson8.mp4",
"tracks": [
{
"kind": "captions",
"file": "https://raw.githubusercontent.com/wesbos/Wes-Bos-Captions/master/NODE/08 - Core Concept - Middleware and Error Handling.vtt",
"label": "English",
"default": true
}
]
} ,
{
"mediaid": "NODE_09",
"feedid": "NODE",
"image": "https://f000.backblazeb2.com/file/bosmonster-images/small8.png",
"title": "09 - Creating our Store Model",
"file": "https://vs1.coursehunters.net/wesbos-node/lesson9.mp4",
"tracks": [
{
"kind": "captions",
"file": "https://raw.githubusercontent.com/wesbos/Wes-Bos-Captions/master/NODE/09 - Creating our Store Model.vtt",
"label": "English",
"default": true
}
]
} ,
{
"mediaid": "NODE_010",
"feedid": "NODE",
"image": "https://f000.backblazeb2.com/file/bosmonster-images/small9.png",
"title": "10 - Saving Stores and using Mixins",
"file": "https://vs1.coursehunters.net/wesbos-node/lesson10.mp4",
"tracks": [
{
"kind": "captions",
"file": "https://raw.githubusercontent.com/wesbos/Wes-Bos-Captions/master/NODE/10 - Saving Stores and using Mixins.vtt",
"label": "English",
"default": true
}
]
} ,
{
"mediaid": "NODE_011",
"feedid": "NODE",
"image": "https://f000.backblazeb2.com/file/bosmonster-images/small10.png",
"title": "11 - Using Async Await",
"file": "https://vs1.coursehunters.net/wesbos-node/lesson11.mp4",
"tracks": [
{
"kind": "captions",
"file": "https://raw.githubusercontent.com/wesbos/Wes-Bos-Captions/master/NODE/11 - Using Async Await.vtt",
"label": "English",
"default": true
}
]
} ,
{
"mediaid": "NODE_012",
"feedid": "NODE",
"image": "https://f000.backblazeb2.com/file/bosmonster-images/small11.png",
"title": "12 - Flash Messages",
"file": "https://vs1.coursehunters.net/wesbos-node/lesson12.mp4",
"tracks": [
{
"kind": "captions",
"file": "https://raw.githubusercontent.com/wesbos/Wes-Bos-Captions/master/NODE/12 - Flash Messages.vtt",
"label": "English",
"default": true
}
]
} ,
{
"mediaid": "NODE_013",
"feedid": "NODE",
"image": "https://f000.backblazeb2.com/file/bosmonster-images/small12.png",
"title": "13 - Querying our Database for Stores",
"file": "https://vs1.coursehunters.net/wesbos-node/lesson13.mp4",
"tracks": [
{
"kind": "captions",
"file": "https://raw.githubusercontent.com/wesbos/Wes-Bos-Captions/master/NODE/13 - Querying our Database for Stores.vtt",
"label": "English",
"default": true
}
]
} ,
{
"mediaid": "NODE_014",
"feedid": "NODE",
"image": "https://f000.backblazeb2.com/file/bosmonster-images/small13.png",
"title": "14 - Creating an Editing Flow for Stores",
"file": "https://vs1.coursehunters.net/wesbos-node/lesson14.mp4",
"tracks": [
{
"kind": "captions",
"file": "https://raw.githubusercontent.com/wesbos/Wes-Bos-Captions/master/NODE/14 - Creating an Editing Flow for Stores.vtt",
"label": "English",
"default": true
}
]
} ,
{
"mediaid": "NODE_015",
"feedid": "NODE",
"image": "https://f000.backblazeb2.com/file/bosmonster-images/small14.png",
"title": "15 - Saving Lat and Lng for each store",
"file": "https://vs1.coursehunters.net/wesbos-node/lesson15.mp4",
"tracks": [
{
"kind": "captions",
"file": "https://raw.githubusercontent.com/wesbos/Wes-Bos-Captions/master/NODE/15 - Saving Lat and Lng for each store.vtt",
"label": "English",
"default": true
}
]
} ,
{
"mediaid": "NODE_016",
"feedid": "NODE",
"image": "https://f000.backblazeb2.com/file/bosmonster-images/small15.png",
"title": "16 - Geocoding Data with Google Maps",
"file": "https://vs1.coursehunters.net/wesbos-node/lesson16.mp4",
"tracks": [
{
"kind": "captions",
"file": "https://raw.githubusercontent.com/wesbos/Wes-Bos-Captions/master/NODE/16 - Geocoding Data with Google Maps.vtt",
"label": "English",
"default": true
}
]
} ,
{
"mediaid": "NODE_017",
"feedid": "NODE",
"image": "https://f000.backblazeb2.com/file/bosmonster-images/small16.png",
"title": "17 - Quick Data Visualization Tip",
"file": "https://vs1.coursehunters.net/wesbos-node/lesson17.mp4",
"tracks": [
{
"kind": "captions",
"file": "https://raw.githubusercontent.com/wesbos/Wes-Bos-Captions/master/NODE/17 - Quick Data Visualization Tip.vtt",
"label": "English",
"default": true
}
]
} ,
{
"mediaid": "NODE_018",
"feedid": "NODE",
"image": "https://f000.backblazeb2.com/file/bosmonster-images/small17.png",
"title": "18 - Uploading and Resizing Images with Middleware",
"file": "https://vs1.coursehunters.net/wesbos-node/lesson18.mp4",
"tracks": [
{
"kind": "captions",
"file": "https://raw.githubusercontent.com/wesbos/Wes-Bos-Captions/master/NODE/18 - Uploading and Resizing Images with Middleware.vtt",
"label": "English",
"default": true
}
]
} ,
{
"mediaid": "NODE_019",
"feedid": "NODE",
"image": "https://f000.backblazeb2.com/file/bosmonster-images/small18.png",
"title": "19 - Routing and Templating Single Stores",
"file": "https://vs1.coursehunters.net/wesbos-node/lesson19.mp4",
"tracks": [
{
"kind": "captions",
"file": "https://raw.githubusercontent.com/wesbos/Wes-Bos-Captions/master/NODE/19 - Routing and Templating Single Stores.vtt",
"label": "English",
"default": true
}
]
} ,
{
"mediaid": "NODE_020",
"feedid": "NODE",
"image": "https://f000.backblazeb2.com/file/bosmonster-images/small19.png",
"title": "20 - Using Pre-Save hooks to make Unique Slugs",
"file": "https://vs1.coursehunters.net/wesbos-node/lesson20.mp4",
"tracks": [
{
"kind": "captions",
"file": "https://raw.githubusercontent.com/wesbos/Wes-Bos-Captions/master/NODE/20 - Using Pre-Save hooks to make Unique Slugs.vtt",
"label": "English",
"default": true
}
]
} ,
{
"mediaid": "NODE_021",
"feedid": "NODE",
"image": "https://f000.backblazeb2.com/file/bosmonster-images/small20.png",
"title": "21 - Custom MongoDB Aggregations",
"file": "https://vs1.coursehunters.net/wesbos-node/lesson21.mp4",
"tracks": [
{
"kind": "captions",
"file": "https://raw.githubusercontent.com/wesbos/Wes-Bos-Captions/master/NODE/21 - Custom MongoDB Aggregations.vtt",
"label": "English",
"default": true
}
]
} ,
{
"mediaid": "NODE_022",
"feedid": "NODE",
"image": "https://f000.backblazeb2.com/file/bosmonster-images/small21.png",
"title": "22 - Multiple Query Promises with Async -Await",
"file": "https://vs1.coursehunters.net/wesbos-node/lesson22.mp4",
"tracks": [
{
"kind": "captions",
"file": "https://raw.githubusercontent.com/wesbos/Wes-Bos-Captions/master/NODE/22 - Multiple Query Promises with Async -Await.vtt",
"label": "English",
"default": true
}
]
} ,
{
"mediaid": "NODE_023",
"feedid": "NODE",
"image": "https://f000.backblazeb2.com/file/bosmonster-images/small22.png",
"title": "23 - Creating User Accounts",
"file": "https://vs1.coursehunters.net/wesbos-node/lesson23.mp4",
"tracks": [
{
"kind": "captions",
"file": "https://raw.githubusercontent.com/wesbos/Wes-Bos-Captions/master/NODE/23 - Creating User Accounts.vtt",
"label": "English",
"default": true
}
]
} ,
{
"mediaid": "NODE_024",
"feedid": "NODE",
"image": "https://f000.backblazeb2.com/file/bosmonster-images/small23.png",
"title": "24 - Saving Registered Users to the Database",
"file": "https://vs1.coursehunters.net/wesbos-node/lesson24.mp4",
"tracks": [
{
"kind": "captions",
"file": "https://raw.githubusercontent.com/wesbos/Wes-Bos-Captions/master/NODE/24 - Saving Registered Users to the Database.vtt",
"label": "English",
"default": true
}
]
} ,
{
"mediaid": "NODE_025",
"feedid": "NODE",
"image": "https://f000.backblazeb2.com/file/bosmonster-images/small24.png",
"title": "25 - Virtual Fields, Login -Logout middleware and Protecting Routes",
"file": "https://vs1.coursehunters.net/wesbos-node/lesson25.mp4",
"tracks": [
{
"kind": "captions",
"file": "https://raw.githubusercontent.com/wesbos/Wes-Bos-Captions/master/NODE/25 - Virtual Fields, Login -Logout middleware and Protecting Routes.vtt",
"label": "English",
"default": true
}
]
} ,
{
"mediaid": "NODE_026",
"feedid": "NODE",
"image": "https://f000.backblazeb2.com/file/bosmonster-images/small25.png",
"title": "26 - Creating a User Account Edit Screen",
"file": "https://vs1.coursehunters.net/wesbos-node/lesson26.mp4",
"tracks": [
{
"kind": "captions",
"file": "https://raw.githubusercontent.com/wesbos/Wes-Bos-Captions/master/NODE/26 - Creating a User Account Edit Screen.vtt",
"label": "English",
"default": true
}
]
} ,
{
"mediaid": "NODE_027",
"feedid": "NODE",
"image": "https://f000.backblazeb2.com/file/bosmonster-images/small26.png",
"title": "27 - Password Reset Flow",
"file": "https://vs1.coursehunters.net/wesbos-node/lesson27.mp4",
"tracks": [
{
"kind": "captions",
"file": "https://raw.githubusercontent.com/wesbos/Wes-Bos-Captions/master/NODE/27 - Password Reset Flow.vtt",
"label": "English",
"default": true
}
]
} ,
{
"mediaid": "NODE_028",
"feedid": "NODE",
"image": "https://f000.backblazeb2.com/file/bosmonster-images/small27.png",
"title": "28 - Sending email with Nodejs",
"file": "https://vs1.coursehunters.net/wesbos-node/lesson28.mp4",
"tracks": [
{
"kind": "captions",
"file": "https://raw.githubusercontent.com/wesbos/Wes-Bos-Captions/master/NODE/28 - Sending email with Nodejs.vtt",
"label": "English",
"default": true
}
]
} ,
{
"mediaid": "NODE_029",
"feedid": "NODE",
"image": "https://f000.backblazeb2.com/file/bosmonster-images/small28.png",
"title": "29 - Locking down our application with User Permissions",
"file": "https://vs1.coursehunters.net/wesbos-node/lesson29.mp4",
"tracks": [
{
"kind": "captions",
"file": "https://raw.githubusercontent.com/wesbos/Wes-Bos-Captions/master/NODE/29 - Locking down our application with User Permissions.vtt",
"label": "English",
"default": true
}
]
} ,
{
"mediaid": "NODE_030",
"feedid": "NODE",
"image": "https://f000.backblazeb2.com/file/bosmonster-images/small29.png",
"title": "30 - Loading Sample Data",
"file": "https://vs1.coursehunters.net/wesbos-node/lesson30.mp4",
"tracks": [
{
"kind": "captions",
"file": "https://raw.githubusercontent.com/wesbos/Wes-Bos-Captions/master/NODE/30 - Loading Sample Data.vtt",
"label": "English",
"default": true
}
]
} ,
{
"mediaid": "NODE_031",
"feedid": "NODE",
"image": "https://f000.backblazeb2.com/file/bosmonster-images/small30.png",
"title": "31 - JSON endpoints and creating MongoDB Indexes",
"file": "https://vs1.coursehunters.net/wesbos-node/lesson31.mp4",
"tracks": [
{
"kind": "captions",
"file": "https://raw.githubusercontent.com/wesbos/Wes-Bos-Captions/master/NODE/31 - JSON endpoints and creating MongoDB Indexes.vtt",
"label": "English",
"default": true
}
]
} ,
{
"mediaid": "NODE_032",
"feedid": "NODE",
"image": "https://f000.backblazeb2.com/file/bosmonster-images/small31.png",
"title": "32 - Creating an Ajax Search Interface",
"file": "https://vs1.coursehunters.net/wesbos-node/lesson32.mp4",
"tracks": [
{
"kind": "captions",
"file": "https://raw.githubusercontent.com/wesbos/Wes-Bos-Captions/master/NODE/32 - Creating an Ajax Search Interface.vtt",
"label": "English",
"default": true
}
]
} ,
{
"mediaid": "NODE_033",
"feedid": "NODE",
"image": "https://f000.backblazeb2.com/file/bosmonster-images/small32.png",
"title": "33 - Creating a Geospatial Ajax Endpoint",
"file": "https://vs1.coursehunters.net/wesbos-node/lesson33.mp4",
"tracks": [
{
"kind": "captions",
"file": "https://raw.githubusercontent.com/wesbos/Wes-Bos-Captions/master/NODE/33 - Creating a Geospatial Ajax Endpoint.vtt",
"label": "English",
"default": true
}
]
} ,
{
"mediaid": "NODE_034",
"feedid": "NODE",
"image": "https://f000.backblazeb2.com/file/bosmonster-images/small33.png",
"title": "34 - Plotting Stores on a Custom Google Map",
"file": "https://vs1.coursehunters.net/wesbos-node/lesson34.mp4",
"tracks": [
{
"kind": "captions",
"file": "https://raw.githubusercontent.com/wesbos/Wes-Bos-Captions/master/NODE/34 - Plotting Stores on a Custom Google Map.vtt",
"label": "English",
"default": true
}
]
} ,
{
"mediaid": "NODE_035",
"feedid": "NODE",
"image": "https://f000.backblazeb2.com/file/bosmonster-images/small34.png",
"title": "35 - Pushing User Data to our API",
"file": "https://vs1.coursehunters.net/wesbos-node/lesson35.mp4",
"tracks": [
{
"kind": "captions",
"file": "https://raw.githubusercontent.com/wesbos/Wes-Bos-Captions/master/NODE/35 - Pushing User Data to our API.vtt",
"label": "English",
"default": true
}
]
} ,
{
"mediaid": "NODE_036",
"feedid": "NODE",
"image": "https://f000.backblazeb2.com/file/bosmonster-images/small35.png",
"title": "36 - Displaying our Hearted Stores",
"file": "https://vs1.coursehunters.net/wesbos-node/lesson36.mp4",
"tracks": [
{
"kind": "captions",
"file": "https://raw.githubusercontent.com/wesbos/Wes-Bos-Captions/master/NODE/36 - Displaying our Hearted Stores.vtt",
"label": "English",
"default": true
}
]
} ,
{
"mediaid": "NODE_037",
"feedid": "NODE",
"image": "https://f000.backblazeb2.com/file/bosmonster-images/small36.png",
"title": "37 - Adding a Reviews Data Model",
"file": "https://vs1.coursehunters.net/wesbos-node/lesson37.mp4",
"tracks": [
{
"kind": "captions",
"file": "https://raw.githubusercontent.com/wesbos/Wes-Bos-Captions/master/NODE/37 - Adding a Reviews Data Model.vtt",
"label": "English",
"default": true
}
]
} ,
{
"mediaid": "NODE_038",
"feedid": "NODE",
"image": "https://f000.backblazeb2.com/file/bosmonster-images/small37.png",
"title": "38 - Advanced Relationship Population - Displaying Our Reviews",
"file": "https://vs1.coursehunters.net/wesbos-node/lesson38.mp4",
"tracks": [
{
"kind": "captions",
"file": "https://raw.githubusercontent.com/wesbos/Wes-Bos-Captions/master/NODE/38 - Advanced Relationship Population - Displaying Our Reviews.vtt",
"label": "English",
"default": true
}
]
} ,
{
"mediaid": "NODE_039",
"feedid": "NODE",
"image": "https://f000.backblazeb2.com/file/bosmonster-images/small38.png",
"title": "39 - Advanced Aggregation",
"file": "https://vs1.coursehunters.net/wesbos-node/lesson39.mp4",
"tracks": [
{
"kind": "captions",
"file": "https://raw.githubusercontent.com/wesbos/Wes-Bos-Captions/master/NODE/39 - Advanced Aggregation.vtt",
"label": "English",
"default": true
}
]
} ,
{
"mediaid": "NODE_040",
"feedid": "NODE",
"image": "https://f000.backblazeb2.com/file/bosmonster-images/small39.png",
"title": "40 - Implementing Pagination",
"file": "https://vs1.coursehunters.net/wesbos-node/lesson40.mp4",
"tracks": [
{
"kind": "captions",
"file": "https://raw.githubusercontent.com/wesbos/Wes-Bos-Captions/master/NODE/40 - Implementing Pagination.vtt",
"label": "English",
"default": true
}
]
} ,
{
"mediaid": "NODE_041",
"feedid": "NODE",
"image": "https://f000.backblazeb2.com/file/bosmonster-images/small40.png",
"title": "41 - Deployment Setup",
"file": "https://vs1.coursehunters.net/wesbos-node/lesson41.mp4",
"tracks": [
{
"kind": "captions",
"file": "https://raw.githubusercontent.com/wesbos/Wes-Bos-Captions/master/NODE/41 - Deployment Setup.vtt",
"label": "English",
"default": true
}
]
} ,
{
"mediaid": "NODE_042",
"feedid": "NODE",
"image": "https://f000.backblazeb2.com/file/bosmonster-images/small41.png",
"title": "42 - Deploying to Now",
"file": "https://vs1.coursehunters.net/wesbos-node/lesson42.mp4",
"tracks": [
{
"kind": "captions",
"file": "https://raw.githubusercontent.com/wesbos/Wes-Bos-Captions/master/NODE/42 - Deploying to Now.vtt",
"label": "English",
"default": true
}
]
} ,
{
"mediaid": "NODE_043",
"feedid": "NODE",
"image": "https://f000.backblazeb2.com/file/bosmonster-images/small42.png",
"title": "43 - Deploying to Heroku",
"file": "https://vs1.coursehunters.net/wesbos-node/lesson43.mp4",
"tracks": [
{
"kind": "captions",
"file": "https://raw.githubusercontent.com/wesbos/Wes-Bos-Captions/master/NODE/43 - Deploying to Heroku.vtt",
"label": "English",
"default": true
}
]
} ,
{
"mediaid": "NODE_044",
"feedid": "NODE",
"image": "https://f000.backblazeb2.com/file/bosmonster-images/small43.png",
"title": "44 - Deploying to Digital Ocean Linux",
"file": "https://vs1.coursehunters.net/wesbos-node/lesson44.mp4",
"tracks": [
{
"kind": "captions",
"file": "https://raw.githubusercontent.com/wesbos/Wes-Bos-Captions/master/NODE/44 - Deploying to Digital Ocean Linux.vtt",
"label": "English",
"default": true
}
]
}
]
}
{
"description": "Learn React.js in just a couple of afternoons. A premium step-by-step training course to get you building real world React.js + Firebase apps and website components.",
"title": "React for Beginners",
"feedid": "RFB",
"kind": "DYNAMIC",
"playlist": [
{
"mediaid": "RFB_01",
"feedid": "RFB",
"image": "https://reactforbeginners.com/images/ss/RFB-0001.jpg",
"title": "01 - Introduction, Tooling and Editor Setup",
"file": "https://vs1.coursehunters.net/wesbos-react/lesson1.mp4",
"tracks": [
{
"kind": "captions",
"file": "https://raw.githubusercontent.com/wesbos/Wes-Bos-Captions/master/RFB/01 - Introduction, Tooling and Editor Setup.vtt",
"label": "English",
"default": true
}
]
},
{
"mediaid": "RFB_02",
"feedid": "RFB",
"image": "https://reactforbeginners.com/images/ss/RFB-0002.jpg",
"title": "02 - Thinking and Understanding React Components",
"file": "https://vs1.coursehunters.net/wesbos-react/lesson2.mp4",
"tracks": [
{
"kind": "captions",
"file": "https://raw.githubusercontent.com/wesbos/Wes-Bos-Captions/master/RFB/02 - Thinking and Understanding React Components.vtt",
"label": "English",
"default": true
}
]
},
{
"mediaid": "RFB_03",
"feedid": "RFB",
"image": "https://reactforbeginners.com/images/ss/RFB-0003.jpg",
"title": "03 - Creating our First Components",
"file": "https://vs1.coursehunters.net/wesbos-react/lesson3.mp4",
"tracks": [
{
"kind": "captions",
"file": "https://raw.githubusercontent.com/wesbos/Wes-Bos-Captions/master/RFB/03 - Creating our First Components.vtt",
"label": "English",
"default": true
}
]
},
{
"mediaid": "RFB_04",
"feedid": "RFB",
"image": "https://reactforbeginners.com/images/ss/RFB-0004.jpg",
"title": "04 - Writing HTML with JSX",
"file": "https://vs1.coursehunters.net/wesbos-react/lesson4.mp4",
"tracks": [
{
"kind": "captions",
"file": "https://raw.githubusercontent.com/wesbos/Wes-Bos-Captions/master/RFB/04 - Writing HTML with JSX.vtt",
"label": "English",
"default": true
}
]
},
{
"mediaid": "RFB_05",
"feedid": "RFB",
"image": "https://reactforbeginners.com/images/ss/RFB-0005.jpg",
"title": "05 - Loading CSS into our React Application",
"file": "https://vs1.coursehunters.net/wesbos-react/lesson5.mp4",
"tracks": [
{
"kind": "captions",
"file": "https://raw.githubusercontent.com/wesbos/Wes-Bos-Captions/master/RFB/05 - Loading CSS into our React Application.vtt",
"label": "English",
"default": true
}
]
},
{
"mediaid": "RFB_06",
"feedid": "RFB",
"image": "https://reactforbeginners.com/images/ss/RFB-0006.jpg",
"title": "06 - Creating our application layout with components",
"file": "https://vs1.coursehunters.net/wesbos-react/lesson6.mp4",
"tracks": [
{
"kind": "captions",
"file": "https://raw.githubusercontent.com/wesbos/Wes-Bos-Captions/master/RFB/06 - Creating our application layout with components.vtt",
"label": "English",
"default": true
}
]
},
{
"mediaid": "RFB_07",
"feedid": "RFB",
"image": "https://reactforbeginners.com/images/ss/RFB-0007.jpg",
"title": "07 - Passing Dynamic data with props",
"file": "https://vs1.coursehunters.net/wesbos-react/lesson7.mp4",
"tracks": [
{
"kind": "captions",
"file": "https://raw.githubusercontent.com/wesbos/Wes-Bos-Captions/master/RFB/07 - Passing Dynamic data with props.vtt",
"label": "English",
"default": true
}
]
},
{
"mediaid": "RFB_08",
"feedid": "RFB",
"image": "https://reactforbeginners.com/images/ss/RFB-0008.jpg",
"title": "08 - Stateless Functional Components",
"file": "https://vs1.coursehunters.net/wesbos-react/lesson8.mp4",
"tracks": [
{
"kind": "captions",
"file": "https://raw.githubusercontent.com/wesbos/Wes-Bos-Captions/master/RFB/08 - Stateless Functional Components.vtt",
"label": "English",
"default": true
}
]
},
{
"mediaid": "RFB_09",
"feedid": "RFB",
"image": "https://reactforbeginners.com/images/ss/RFB-0009.jpg",
"title": "09 - Routing with React Router",
"file": "https://vs1.coursehunters.net/wesbos-react/lesson9.mp4",
"tracks": [
{
"kind": "captions",
"file": "https://raw.githubusercontent.com/wesbos/Wes-Bos-Captions/master/RFB/09 - Routing with React Router.vtt",
"label": "English",
"default": true
}
]
},
{
"mediaid": "RFB_010",
"feedid": "RFB",
"image": "https://reactforbeginners.com/images/ss/RFB-00010.jpg",
"title": "10 - Helper and Utility Functions",
"file": "https://vs1.coursehunters.net/wesbos-react/lesson10.mp4",
"tracks": [
{
"kind": "captions",
"file": "https://raw.githubusercontent.com/wesbos/Wes-Bos-Captions/master/RFB/10 - Helper and Utility Functions.vtt",
"label": "English",
"default": true
}
]
},
{
"mediaid": "RFB_011",
"feedid": "RFB",
"image": "https://reactforbeginners.com/images/ss/RFB-00011.jpg",
"title": "11 - Working with React Events",
"file": "https://vs1.coursehunters.net/wesbos-react/lesson11.mp4",
"tracks": [
{
"kind": "captions",
"file": "https://raw.githubusercontent.com/wesbos/Wes-Bos-Captions/master/RFB/11 - Working with React Events.vtt",
"label": "English",
"default": true
}
]
},
{
"mediaid": "RFB_012",
"feedid": "RFB",
"image": "https://reactforbeginners.com/images/ss/RFB-00012.jpg",
"title": "12 - All About React Router",
"file": "https://vs1.coursehunters.net/wesbos-react/lesson12.mp4",
"tracks": [
{
"kind": "captions",
"file": "https://raw.githubusercontent.com/wesbos/Wes-Bos-Captions/master/RFB/12 - All About React Router.vtt",
"label": "English",
"default": true
}
]
},
{
"mediaid": "RFB_013",
"feedid": "RFB",
"image": "https://reactforbeginners.com/images/ss/RFB-00013.jpg",
"title": "13 - Understanding State",
"file": "https://vs1.coursehunters.net/wesbos-react/lesson13.mp4",
"tracks": [
{
"kind": "captions",
"file": "https://raw.githubusercontent.com/wesbos/Wes-Bos-Captions/master/RFB/13 - Understanding State.vtt",
"label": "English",
"default": true
}
]
},
{
"mediaid": "RFB_014",
"feedid": "RFB",
"image": "https://reactforbeginners.com/images/ss/RFB-00014.jpg",
"title": "14 - Loading data into state onClick",
"file": "https://vs1.coursehunters.net/wesbos-react/lesson14.mp4",
"tracks": [
{
"kind": "captions",
"file": "https://raw.githubusercontent.com/wesbos/Wes-Bos-Captions/master/RFB/14 - Loading data into state onClick.vtt",
"label": "English",
"default": true
}
]
},
{
"mediaid": "RFB_015",
"feedid": "RFB",
"image": "https://reactforbeginners.com/images/ss/RFB-00015.jpg",
"title": "15 - Displaying State with JSX",
"file": "https://vs1.coursehunters.net/wesbos-react/lesson15.mp4",
"tracks": [
{
"kind": "captions",
"file": "https://raw.githubusercontent.com/wesbos/Wes-Bos-Captions/master/RFB/15 - Displaying State with JSX.vtt",
"label": "English",
"default": true
}
]
},
{
"mediaid": "RFB_016",
"feedid": "RFB",
"image": "https://reactforbeginners.com/images/ss/RFB-00016.jpg",
"title": "16 - Updating Order State",
"file": "https://vs1.coursehunters.net/wesbos-react/lesson16.mp4",
"tracks": [
{
"kind": "captions",
"file": "https://raw.githubusercontent.com/wesbos/Wes-Bos-Captions/master/RFB/16 - Updating Order State.vtt",
"label": "English",
"default": true
}
]
},
{
"mediaid": "RFB_017",
"feedid": "RFB",
"image": "https://reactforbeginners.com/images/ss/RFB-00017.jpg",
"title": "17 - Displaying Order State with JSX",
"file": "https://vs1.coursehunters.net/wesbos-react/lesson17.mp4",
"tracks": [
{
"kind": "captions",
"file": "https://raw.githubusercontent.com/wesbos/Wes-Bos-Captions/master/RFB/17 - Displaying Order State with JSX.vtt",
"label": "English",
"default": true
}
]
},
{
"mediaid": "RFB_018",
"feedid": "RFB",
"image": "https://reactforbeginners.com/images/ss/RFB-00018.jpg",
"title": "18 - Persisting our State with Firebase",
"file": "https://vs1.coursehunters.net/wesbos-react/lesson18.mp4",
"tracks": [
{
"kind": "captions",
"file": "https://raw.githubusercontent.com/wesbos/Wes-Bos-Captions/master/RFB/18 - Persisting our State with Firebase.vtt",
"label": "English",
"default": true
}
]
},
{
"mediaid": "RFB_019",
"feedid": "RFB",
"image": "https://reactforbeginners.com/images/ss/RFB-00019.jpg",
"title": "19 - Persisting Order State with localstorage",
"file": "https://vs1.coursehunters.net/wesbos-react/lesson19.mp4",
"tracks": [
{
"kind": "captions",
"file": "https://raw.githubusercontent.com/wesbos/Wes-Bos-Captions/master/RFB/19 - Persisting Order State with localstorage.vtt",
"label": "English",
"default": true
}
]
},
{
"mediaid": "RFB_020",
"feedid": "RFB",
"image": "https://reactforbeginners.com/images/ss/RFB-00020.jpg",
"title": "20 - Bi-directional Data Flow and Live State Editing ",
"file": "https://vs1.coursehunters.net/wesbos-react/lesson20.mp4",
"tracks": [
{
"kind": "captions",
"file": "https://raw.githubusercontent.com/wesbos/Wes-Bos-Captions/master/RFB/20 - Bi-directional Data Flow and Live State Editing .vtt",
"label": "English",
"default": true
}
]
},
{
"mediaid": "RFB_021",
"feedid": "RFB",
"image": "https://reactforbeginners.com/images/ss/RFB-00021.jpg",
"title": "21 - Removing Items from State",
"file": "https://vs1.coursehunters.net/wesbos-react/lesson21.mp4",
"tracks": [
{
"kind": "captions",
"file": "https://raw.githubusercontent.com/wesbos/Wes-Bos-Captions/master/RFB/21 - Removing Items from State.vtt",
"label": "English",
"default": true
}
]
},
{
"mediaid": "RFB_022",
"feedid": "RFB",
"image": "https://reactforbeginners.com/images/ss/RFB-00022.jpg",
"title": "22 - Animating React Components",
"file": "https://vs1.coursehunters.net/wesbos-react/lesson22.mp4",
"tracks": [
{
"kind": "captions",
"file": "https://raw.githubusercontent.com/wesbos/Wes-Bos-Captions/master/RFB/22 - Animating React Components.vtt",
"label": "English",
"default": true
}
]
},
{
"mediaid": "RFB_023",
"feedid": "RFB",
"image": "https://reactforbeginners.com/images/ss/RFB-00023.jpg",
"title": "23 - Component Validation with PropTypes",
"file": "https://vs1.coursehunters.net/wesbos-react/lesson23.mp4",
"tracks": [
{
"kind": "captions",
"file": "https://raw.githubusercontent.com/wesbos/Wes-Bos-Captions/master/RFB/23 - Component Validation with PropTypes.vtt",
"label": "English",
"default": true
}
]
},
{
"mediaid": "RFB_024",
"feedid": "RFB",
"image": "https://reactforbeginners.com/images/ss/RFB-00024.jpg",
"title": "24 - Authentication",
"file": "https://vs1.coursehunters.net/wesbos-react/lesson24.mp4",
"tracks": [
{
"kind": "captions",
"file": "https://raw.githubusercontent.com/wesbos/Wes-Bos-Captions/master/RFB/24 - Authentication.vtt",
"label": "English",
"default": true
}
]
},
{
"mediaid": "RFB_025",
"feedid": "RFB",
"image": "https://reactforbeginners.com/images/ss/RFB-00025.jpg",
"title": "25 - Building React for Production",
"file": "https://vs1.coursehunters.net/wesbos-react/lesson25.mp4",
"tracks": [
{
"kind": "captions",
"file": "https://raw.githubusercontent.com/wesbos/Wes-Bos-Captions/master/RFB/25 - Building React for Production.vtt",
"label": "English",
"default": true
}
]
},
{
"mediaid": "RFB_026",
"feedid": "RFB",
"image": "https://reactforbeginners.com/images/ss/RFB-00026.jpg",
"title": "26 - Deploying to now",
"file": "https://vs1.coursehunters.net/wesbos-react/lesson26.mp4",
"tracks": [
{
"kind": "captions",
"file": "https://raw.githubusercontent.com/wesbos/Wes-Bos-Captions/master/RFB/26 - Deploying to now.vtt",
"label": "English",
"default": true
}
]
},
{
"mediaid": "RFB_027",
"feedid": "RFB",
"image": "https://reactforbeginners.com/images/ss/RFB-00027.jpg",
"title": "27 - Deploying to GitHub Pages",
"file": "https://vs1.coursehunters.net/wesbos-react/lesson27.mp4",
"tracks": [
{
"kind": "captions",
"file": "https://raw.githubusercontent.com/wesbos/Wes-Bos-Captions/master/RFB/27 - Deploying to GitHub Pages.vtt",
"label": "English",
"default": true
}
]
},
{
"mediaid": "RFB_028",
"feedid": "RFB",
"image": "https://reactforbeginners.com/images/ss/RFB-00028.jpg",
"title": "28 - Deploying to an Apache Server",
"file": "https://vs1.coursehunters.net/wesbos-react/lesson28.mp4",
"tracks": [
{
"kind": "captions",
"file": "https://raw.githubusercontent.com/wesbos/Wes-Bos-Captions/master/RFB/28 - Deploying to an Apache Server.vtt",
"label": "English",
"default": true
}
]
},
{
"mediaid": "RFB_029",
"feedid": "RFB",
"image": "https://reactforbeginners.com/images/ss/RFB-00029.jpg",
"title": "29 - Future React Today - Property Initializers and getting rid of ",
"file": "https://vs1.coursehunters.net/wesbos-react/lesson29.mp4",
"tracks": [
{
"kind": "captions",
"file": "https://raw.githubusercontent.com/wesbos/Wes-Bos-Captions/master/RFB/29 - Future React Today - Property Initializers and getting rid of .vtt",
"label": "English",
"default": true
}
]
},
{
"mediaid": "RFB_030",
"feedid": "RFB",
"image": "https://reactforbeginners.com/images/ss/RFB-00030.jpg",
"title": "30 - Ejecting from create-react-app",
"file": "https://vs1.coursehunters.net/wesbos-react/lesson30.mp4",
"tracks": [
{
"kind": "captions",
"file": "https://raw.githubusercontent.com/wesbos/Wes-Bos-Captions/master/RFB/30 - Ejecting from create-react-app.vtt",
"label": "English",
"default": true
}
]
}
]
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment