-
-
Save barbagrigia/30f4a9c099695865154b6afb4345b81d to your computer and use it in GitHub Desktop.
jwplayer
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{ | |
"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 | |
} | |
] | |
} | |
] | |
} |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{ | |
"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 | |
} | |
] | |
} | |
] | |
} |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{ | |
"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 | |
} | |
] | |
} | |
] | |
} |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{ | |
"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