[{"transcript":" I want to talk to you about how to handle images in your Django apps efficiently using Cloudinary.","confidence":0.7536111111111112,"words":[{"word":"I","start_time":0.121,"end_time":0.181},{"word":"want","start_time":0.221,"end_time":0.341},{"word":"to","start_time":0.362,"end_time":0.462},{"word":"talk","start_time":0.502,"end_time":0.703},{"word":"to","start_time":0.723,"end_time":0.803},{"word":"you","start_time":0.844,"end_time":0.964},{"word":"about","start_time":1.045,"end_time":1.266},{"word":"how","start_time":1.346,"end_time":1.466},{"word":"to","start_time":1.486,"end_time":1.547},{"word":"handle","start_time":1.587,"end_time":1.908},{"word":"images","start_time":1.969,"end_time":2.35},{"word":"in","start_time":2.39,"end_time":2.471},{"word":"your","start_time":2.511,"end_time":2.631},{"word":"Django","start_time":2.652,"end_time":3.013},{"word":"apps","start_time":3.073,"end_time":3.194},{"word":"efficiently","start_time":3.314,"end_time":3.877},{"word":"using","start_time":4.017,"end_time":4.238},{"word":"Cloudinary.","start_time":4.279,"end_time":4.58}],"alternatives":[],"language":"en"},{"transcript":" You're probably doing a lot of image handling manually in your apps,","confidence":0.7949166666666666,"words":[{"word":"You're","start_time":5.743,"end_time":5.883},{"word":"probably","start_time":5.924,"end_time":6.266},{"word":"doing","start_time":6.326,"end_time":6.527},{"word":"a","start_time":6.567,"end_time":6.608},{"word":"lot","start_time":6.668,"end_time":6.869},{"word":"of","start_time":6.889,"end_time":6.949},{"word":"image","start_time":7.05,"end_time":7.251},{"word":"handling","start_time":7.291,"end_time":7.674},{"word":"manually","start_time":7.814,"end_time":8.317},{"word":"in","start_time":8.357,"end_time":8.418},{"word":"your","start_time":8.458,"end_time":8.579},{"word":"apps,","start_time":8.699,"end_time":8.8}],"alternatives":[],"language":"en"},{"transcript":" but Cloudinary offers form and model helper methods that will help you do it all automatically,","confidence":0.8159374999999999,"words":[{"word":"but","start_time":9.482,"end_time":9.602},{"word":"Cloudinary","start_time":9.703,"end_time":10.305},{"word":"offers","start_time":10.485,"end_time":10.847},{"word":"form","start_time":10.987,"end_time":11.288},{"word":"and","start_time":11.328,"end_time":11.429},{"word":"model","start_time":11.529,"end_time":11.85},{"word":"helper","start_time":11.89,"end_time":12.151},{"word":"methods","start_time":12.171,"end_time":12.573},{"word":"that","start_time":12.994,"end_time":13.115},{"word":"will","start_time":13.135,"end_time":13.275},{"word":"help","start_time":13.315,"end_time":13.456},{"word":"you","start_time":13.496,"end_time":13.596},{"word":"do","start_time":13.636,"end_time":13.757},{"word":"it","start_time":13.797,"end_time":13.857},{"word":"all","start_time":14.038,"end_time":14.198},{"word":"automatically,","start_time":14.319,"end_time":14.64}],"alternatives":[],"language":"en"},{"transcript":" including uploading, storage in a cloud, smart cropping and resizing automatically with AI,","confidence":0.8166153846153846,"words":[{"word":"including","start_time":15.061,"end_time":15.442},{"word":"uploading,","start_time":15.542,"end_time":16.024},{"word":"storage","start_time":16.586,"end_time":17.007},{"word":"in","start_time":17.047,"end_time":17.148},{"word":"a","start_time":17.168,"end_time":17.188},{"word":"cloud,","start_time":17.248,"end_time":17.649},{"word":"smart","start_time":18.191,"end_time":18.532},{"word":"cropping","start_time":18.613,"end_time":19.014},{"word":"and","start_time":19.034,"end_time":19.114},{"word":"resizing","start_time":19.154,"end_time":19.716},{"word":"automatically","start_time":19.817,"end_time":20.479},{"word":"with","start_time":20.519,"end_time":20.639},{"word":"AI,","start_time":20.659,"end_time":20.699}],"alternatives":[],"language":"en"},{"transcript":" and compressing your images so that your app is as light as it could be.","confidence":0.8162000000000001,"words":[{"word":"and","start_time":21.743,"end_time":21.823},{"word":"compressing","start_time":21.884,"end_time":22.427},{"word":"your","start_time":22.447,"end_time":22.568},{"word":"images","start_time":22.628,"end_time":22.97},{"word":"so","start_time":23.07,"end_time":23.151},{"word":"that","start_time":23.191,"end_time":23.312},{"word":"your","start_time":23.332,"end_time":23.493},{"word":"app","start_time":23.613,"end_time":23.734},{"word":"is","start_time":23.794,"end_time":23.875},{"word":"as","start_time":23.935,"end_time":24.016},{"word":"light","start_time":24.076,"end_time":24.277},{"word":"as","start_time":24.317,"end_time":24.398},{"word":"it","start_time":24.458,"end_time":24.498},{"word":"could","start_time":24.559,"end_time":24.7},{"word":"be.","start_time":24.74,"end_time":24.78}],"alternatives":[],"language":"en"},{"transcript":" Cloudinary automatically saves the URLs to your images in the database so that you can easily retrieve those images and display them in your app.","confidence":0.7796799999999999,"words":[{"word":"Cloudinary","start_time":25.68,"end_time":26.282},{"word":"automatically","start_time":26.382,"end_time":27.024},{"word":"saves","start_time":27.104,"end_time":27.365},{"word":"the","start_time":27.385,"end_time":27.485},{"word":"URLs","start_time":27.545,"end_time":27.986},{"word":"to","start_time":28.006,"end_time":28.087},{"word":"your","start_time":28.127,"end_time":28.267},{"word":"images","start_time":28.307,"end_time":28.668},{"word":"in","start_time":28.728,"end_time":28.809},{"word":"the","start_time":28.829,"end_time":28.909},{"word":"database","start_time":28.949,"end_time":29.45},{"word":"so","start_time":30.012,"end_time":30.112},{"word":"that","start_time":30.132,"end_time":30.232},{"word":"you","start_time":30.272,"end_time":30.353},{"word":"can","start_time":30.393,"end_time":30.533},{"word":"easily","start_time":30.694,"end_time":30.994},{"word":"retrieve","start_time":31.034,"end_time":31.455},{"word":"those","start_time":31.496,"end_time":31.656},{"word":"images","start_time":31.736,"end_time":32.077},{"word":"and","start_time":32.137,"end_time":32.217},{"word":"display","start_time":32.258,"end_time":32.699},{"word":"them","start_time":32.719,"end_time":32.859},{"word":"in","start_time":32.879,"end_time":32.939},{"word":"your","start_time":32.979,"end_time":33.1},{"word":"app.","start_time":33.12,"end_time":33.18}],"alternatives":[],"language":"en"},{"transcript":" In this tutorial, I'm going to go through an existing Django app and show you how to integrate Cloudinary using the form and model helper methods.","confidence":0.8196153846153845,"words":[{"word":"In","start_time":34.321,"end_time":34.382},{"word":"this","start_time":34.422,"end_time":34.582},{"word":"tutorial,","start_time":34.602,"end_time":35.184},{"word":"I'm","start_time":35.244,"end_time":35.364},{"word":"going","start_time":35.404,"end_time":35.605},{"word":"to","start_time":35.645,"end_time":35.725},{"word":"go","start_time":35.765,"end_time":35.866},{"word":"through","start_time":35.906,"end_time":36.086},{"word":"an","start_time":36.126,"end_time":36.166},{"word":"existing","start_time":36.226,"end_time":36.708},{"word":"Django","start_time":36.728,"end_time":37.169},{"word":"app","start_time":37.289,"end_time":37.43},{"word":"and","start_time":37.51,"end_time":37.61},{"word":"show","start_time":37.67,"end_time":37.831},{"word":"you","start_time":37.871,"end_time":37.971},{"word":"how","start_time":38.011,"end_time":38.131},{"word":"to","start_time":38.172,"end_time":38.252},{"word":"integrate","start_time":38.332,"end_time":38.793},{"word":"Cloudinary","start_time":38.853,"end_time":39.495},{"word":"using","start_time":39.796,"end_time":40.036},{"word":"the","start_time":40.077,"end_time":40.157},{"word":"form","start_time":40.237,"end_time":40.478},{"word":"and","start_time":40.518,"end_time":40.618},{"word":"model","start_time":40.638,"end_time":40.899},{"word":"helper","start_time":40.939,"end_time":41.2},{"word":"methods.","start_time":41.22,"end_time":41.36}],"alternatives":[],"language":"en"},{"transcript":" So let's look at the Cloudinary app before I integrate Cloudinary.","confidence":0.7000909090909091,"words":[{"word":"So","start_time":42.703,"end_time":42.824},{"word":"let's","start_time":42.864,"end_time":43.045},{"word":"look","start_time":43.065,"end_time":43.226},{"word":"at","start_time":43.246,"end_time":43.306},{"word":"the","start_time":43.326,"end_time":43.407},{"word":"Cloudinary","start_time":43.447,"end_time":44.031},{"word":"app","start_time":44.151,"end_time":44.312},{"word":"before","start_time":44.393,"end_time":44.795},{"word":"I","start_time":44.835,"end_time":44.895},{"word":"integrate","start_time":44.956,"end_time":45.358},{"word":"Cloudinary.","start_time":45.378,"end_time":45.68}],"alternatives":[],"language":"en"},{"transcript":" I've got the files Forms.py, Models.py, and Views.py.","confidence":0.80575,"words":[{"word":"I've","start_time":46.75,"end_time":46.891},{"word":"got","start_time":46.911,"end_time":47.092},{"word":"the","start_time":47.132,"end_time":47.213},{"word":"files","start_time":47.273,"end_time":47.695},{"word":"Forms.py,","start_time":47.796,"end_time":48.7},{"word":"Models.py,","start_time":48.901,"end_time":49.785},{"word":"and","start_time":50.067,"end_time":50.167},{"word":"Views.py.","start_time":50.187,"end_time":50.569}],"alternatives":[],"language":"en"},{"transcript":" I've got the templates Upload.html and Display.html.","confidence":0.7672857142857142,"words":[{"word":"I've","start_time":51.573,"end_time":51.713},{"word":"got","start_time":51.733,"end_time":51.874},{"word":"the","start_time":51.894,"end_time":51.975},{"word":"templates","start_time":52.015,"end_time":52.477},{"word":"Upload.html","start_time":52.698,"end_time":53.904},{"word":"and","start_time":53.984,"end_time":54.065},{"word":"Display.html.","start_time":54.105,"end_time":54.587}],"alternatives":[],"language":"en"},{"transcript":" And within the Settings.py and URLs.py files,","confidence":0.7064285714285715,"words":[{"word":"And","start_time":56.133,"end_time":56.234},{"word":"within","start_time":56.274,"end_time":56.515},{"word":"the","start_time":56.555,"end_time":56.636},{"word":"Settings.py","start_time":56.716,"end_time":57.701},{"word":"and","start_time":57.822,"end_time":57.902},{"word":"URLs.py","start_time":58.003,"end_time":58.163},{"word":"files,","start_time":58.264,"end_time":58.465}],"alternatives":[],"language":"en"},{"transcript":" I've got code that sets up upload and storage for me.","confidence":0.7190909090909092,"words":[{"word":"I've","start_time":60.436,"end_time":60.577},{"word":"got","start_time":60.597,"end_time":60.778},{"word":"code","start_time":60.878,"end_time":61.26},{"word":"that","start_time":61.561,"end_time":61.722},{"word":"sets","start_time":61.802,"end_time":62.044},{"word":"up","start_time":62.124,"end_time":62.224},{"word":"upload","start_time":62.365,"end_time":62.686},{"word":"and","start_time":62.707,"end_time":62.847},{"word":"storage","start_time":62.867,"end_time":63.269},{"word":"for","start_time":63.309,"end_time":63.39},{"word":"me.","start_time":63.41,"end_time":63.45}],"alternatives":[],"language":"en"},{"transcript":" So let's take a look at our actual app.","confidence":0.7744444444444444,"words":[{"word":"So","start_time":64.475,"end_time":64.596},{"word":"let's","start_time":64.637,"end_time":64.859},{"word":"take","start_time":64.899,"end_time":65.061},{"word":"a","start_time":65.081,"end_time":65.101},{"word":"look","start_time":65.142,"end_time":65.263},{"word":"at","start_time":65.283,"end_time":65.343},{"word":"our","start_time":65.364,"end_time":65.465},{"word":"actual","start_time":65.566,"end_time":65.889},{"word":"app.","start_time":65.909,"end_time":66.03}],"alternatives":[],"language":"en"},{"transcript":" It's all about images.","confidence":0.6855,"words":[{"word":"It's","start_time":66.495,"end_time":66.638},{"word":"all","start_time":66.719,"end_time":66.862},{"word":"about","start_time":66.882,"end_time":67.066},{"word":"images.","start_time":67.086,"end_time":67.29}],"alternatives":[],"language":"en"},{"transcript":" I'm going to choose an image, upload it,","confidence":0.6941250000000001,"words":[{"word":"I'm","start_time":68.454,"end_time":68.575},{"word":"going","start_time":68.595,"end_time":68.736},{"word":"to","start_time":68.776,"end_time":68.857},{"word":"choose","start_time":68.957,"end_time":69.239},{"word":"an","start_time":69.259,"end_time":69.32},{"word":"image,","start_time":69.4,"end_time":69.682},{"word":"upload","start_time":70.387,"end_time":70.71},{"word":"it,","start_time":70.73,"end_time":70.77}],"alternatives":[],"language":"en"},{"transcript":" and then I'm going to have all my images","confidence":0.8422222222222222,"words":[{"word":"and","start_time":71.275,"end_time":71.355},{"word":"then","start_time":71.376,"end_time":71.477},{"word":"I'm","start_time":71.517,"end_time":71.618},{"word":"going","start_time":71.659,"end_time":71.841},{"word":"to","start_time":71.861,"end_time":71.921},{"word":"have","start_time":71.962,"end_time":72.083},{"word":"all","start_time":72.204,"end_time":72.346},{"word":"my","start_time":72.366,"end_time":72.487},{"word":"images","start_time":72.568,"end_time":72.73}],"alternatives":[],"language":"en"},{"transcript":" displayed for my database.","confidence":0.6637500000000001,"words":[{"word":"displayed","start_time":72.934,"end_time":73.402},{"word":"for","start_time":73.443,"end_time":73.565},{"word":"my","start_time":73.586,"end_time":73.647},{"word":"database.","start_time":73.667,"end_time":73.83}],"alternatives":[],"language":"en"},{"transcript":" It looks great, except for some of the images are distorted.","confidence":0.7934545454545454,"words":[{"word":"It","start_time":75.003,"end_time":75.063},{"word":"looks","start_time":75.123,"end_time":75.385},{"word":"great,","start_time":75.505,"end_time":75.847},{"word":"except","start_time":75.968,"end_time":76.37},{"word":"for","start_time":76.49,"end_time":76.852},{"word":"some","start_time":77.053,"end_time":77.214},{"word":"of","start_time":77.254,"end_time":77.295},{"word":"the","start_time":77.335,"end_time":77.415},{"word":"images","start_time":77.476,"end_time":77.757},{"word":"are","start_time":77.817,"end_time":77.918},{"word":"distorted.","start_time":77.958,"end_time":78.3}],"alternatives":[],"language":"en"},{"transcript":" Unless the images have the same aspect ratio as the bounding box I want to fit them into,","confidence":0.7907777777777779,"words":[{"word":"Unless","start_time":80.062,"end_time":80.343},{"word":"the","start_time":80.383,"end_time":80.483},{"word":"images","start_time":80.544,"end_time":80.845},{"word":"have","start_time":80.905,"end_time":81.026},{"word":"the","start_time":81.066,"end_time":81.146},{"word":"same","start_time":81.227,"end_time":81.488},{"word":"aspect","start_time":81.669,"end_time":82.01},{"word":"ratio","start_time":82.09,"end_time":82.352},{"word":"as","start_time":82.392,"end_time":82.472},{"word":"the","start_time":82.512,"end_time":82.593},{"word":"bounding","start_time":82.693,"end_time":83.075},{"word":"box","start_time":83.115,"end_time":83.356},{"word":"I","start_time":83.416,"end_time":83.477},{"word":"want","start_time":83.517,"end_time":83.677},{"word":"to","start_time":83.698,"end_time":83.778},{"word":"fit","start_time":83.818,"end_time":83.979},{"word":"them","start_time":83.999,"end_time":84.139},{"word":"into,","start_time":84.18,"end_time":84.26}],"alternatives":[],"language":"en"},{"transcript":" they're going to get stretched and squeezed to fit.","confidence":0.7176666666666667,"words":[{"word":"they're","start_time":84.642,"end_time":84.843},{"word":"going","start_time":84.864,"end_time":85.086},{"word":"to","start_time":85.126,"end_time":85.207},{"word":"get","start_time":85.247,"end_time":85.408},{"word":"stretched","start_time":85.509,"end_time":85.913},{"word":"and","start_time":85.953,"end_time":86.054},{"word":"squeezed","start_time":86.115,"end_time":86.478},{"word":"to","start_time":86.498,"end_time":86.538},{"word":"fit.","start_time":86.559,"end_time":86.7}],"alternatives":[],"language":"en"},{"transcript":" So I either have to manually crop the images down to the right size,","confidence":0.8518571428571428,"words":[{"word":"So","start_time":88.182,"end_time":88.363},{"word":"I","start_time":88.464,"end_time":88.544},{"word":"either","start_time":88.605,"end_time":88.806},{"word":"have","start_time":88.846,"end_time":89.027},{"word":"to","start_time":89.067,"end_time":89.147},{"word":"manually","start_time":89.248,"end_time":89.71},{"word":"crop","start_time":89.791,"end_time":90.092},{"word":"the","start_time":90.132,"end_time":90.193},{"word":"images","start_time":90.233,"end_time":90.575},{"word":"down","start_time":90.635,"end_time":90.836},{"word":"to","start_time":90.876,"end_time":90.957},{"word":"the","start_time":90.977,"end_time":91.037},{"word":"right","start_time":91.077,"end_time":91.258},{"word":"size,","start_time":91.338,"end_time":91.62}],"alternatives":[],"language":"en"},{"transcript":" or use cladinary, as we'll see in just a minute.","confidence":0.671,"words":[{"word":"or","start_time":92.464,"end_time":92.565},{"word":"use","start_time":92.625,"end_time":92.746},{"word":"cladinary,","start_time":92.827,"end_time":93.511},{"word":"as","start_time":93.773,"end_time":93.894},{"word":"we'll","start_time":93.934,"end_time":94.095},{"word":"see","start_time":94.115,"end_time":94.256},{"word":"in","start_time":94.276,"end_time":94.357},{"word":"just","start_time":94.377,"end_time":94.579},{"word":"a","start_time":94.619,"end_time":94.659},{"word":"minute.","start_time":94.679,"end_time":94.8}],"alternatives":[],"language":"en"},{"transcript":" The second issue I want to bring your attention to is the size of these images.","confidence":0.8544999999999998,"words":[{"word":"The","start_time":95.922,"end_time":96.043},{"word":"second","start_time":96.143,"end_time":96.425},{"word":"issue","start_time":96.485,"end_time":96.686},{"word":"I","start_time":96.727,"end_time":96.767},{"word":"want","start_time":96.807,"end_time":96.928},{"word":"to","start_time":96.968,"end_time":97.008},{"word":"bring","start_time":97.048,"end_time":97.189},{"word":"your","start_time":97.209,"end_time":97.33},{"word":"attention","start_time":97.35,"end_time":97.732},{"word":"to","start_time":97.792,"end_time":97.933},{"word":"is","start_time":98.034,"end_time":98.114},{"word":"the","start_time":98.154,"end_time":98.255},{"word":"size","start_time":98.355,"end_time":98.677},{"word":"of","start_time":98.717,"end_time":98.758},{"word":"these","start_time":98.798,"end_time":98.939},{"word":"images.","start_time":99.019,"end_time":99.2}],"alternatives":[],"language":"en"},{"transcript":" So let's open my Media Inspector Chrome extension, which is a handy tool that allows me to see the","confidence":0.7619473684210526,"words":[{"word":"So","start_time":100.351,"end_time":100.451},{"word":"let's","start_time":100.491,"end_time":100.672},{"word":"open","start_time":100.752,"end_time":100.953},{"word":"my","start_time":101.013,"end_time":101.114},{"word":"Media","start_time":101.194,"end_time":101.495},{"word":"Inspector","start_time":101.535,"end_time":102.037},{"word":"Chrome","start_time":102.138,"end_time":102.419},{"word":"extension,","start_time":102.459,"end_time":103.001},{"word":"which","start_time":103.142,"end_time":103.282},{"word":"is","start_time":103.343,"end_time":103.423},{"word":"a","start_time":103.463,"end_time":103.503},{"word":"handy","start_time":103.543,"end_time":103.865},{"word":"tool","start_time":103.945,"end_time":104.166},{"word":"that","start_time":104.206,"end_time":104.327},{"word":"allows","start_time":104.387,"end_time":104.708},{"word":"me","start_time":104.768,"end_time":104.849},{"word":"to","start_time":104.889,"end_time":104.949},{"word":"see","start_time":105.009,"end_time":105.11},{"word":"the","start_time":105.13,"end_time":105.19}],"alternatives":[],"language":"en"},{"transcript":" size of the image.","confidence":0.7902499999999999,"words":[{"word":"size","start_time":105.331,"end_time":105.612},{"word":"of","start_time":105.652,"end_time":105.712},{"word":"the","start_time":105.732,"end_time":105.813},{"word":"image.","start_time":105.893,"end_time":106.175}],"alternatives":[],"language":"en"},{"transcript":"And if we check out this particular image that I just uploaded,","confidence":0.8304999999999998,"words":[{"word":"And","start_time":106.858,"end_time":106.938},{"word":"if","start_time":106.978,"end_time":107.038},{"word":"we","start_time":107.059,"end_time":107.199},{"word":"check","start_time":107.28,"end_time":107.521},{"word":"out","start_time":107.581,"end_time":107.702},{"word":"this","start_time":107.742,"end_time":107.902},{"word":"particular","start_time":107.963,"end_time":108.505},{"word":"image","start_time":108.586,"end_time":108.807},{"word":"that","start_time":108.847,"end_time":108.947},{"word":"I","start_time":108.987,"end_time":109.048},{"word":"just","start_time":109.108,"end_time":109.309},{"word":"uploaded,","start_time":109.329,"end_time":109.51}],"alternatives":[],"language":"en"},{"transcript":" it's a JPEG and its size is 302.08 kilobytes.","confidence":0.7205555555555555,"words":[{"word":"it's","start_time":110.371,"end_time":110.511},{"word":"a","start_time":110.552,"end_time":110.572},{"word":"JPEG","start_time":110.632,"end_time":111.173},{"word":"and","start_time":111.374,"end_time":111.454},{"word":"its","start_time":111.494,"end_time":111.594},{"word":"size","start_time":111.654,"end_time":112.075},{"word":"is","start_time":112.095,"end_time":112.496},{"word":"302.08","start_time":112.857,"end_time":113.96},{"word":"kilobytes.","start_time":114.261,"end_time":114.802}],"alternatives":[],"language":"en"},{"transcript":"Now that's pretty big.","confidence":0.88225,"words":[{"word":"Now","start_time":115.544,"end_time":115.644},{"word":"that's","start_time":115.684,"end_time":115.904},{"word":"pretty","start_time":115.965,"end_time":116.185},{"word":"big.","start_time":116.225,"end_time":116.466}],"alternatives":[],"language":"en"},{"transcript":"Let's see if using","confidence":0.70425,"words":[{"word":"Let's","start_time":117.609,"end_time":117.809},{"word":"see","start_time":117.829,"end_time":117.929},{"word":"if","start_time":117.969,"end_time":118.03},{"word":"using","start_time":118.05,"end_time":118.17}],"alternatives":[],"language":"en"},{"transcript":" Cloudinary we can automatically take care of these two issues.","confidence":0.8362,"words":[{"word":"Cloudinary","start_time":118.431,"end_time":119.053},{"word":"we","start_time":119.093,"end_time":119.174},{"word":"can","start_time":119.214,"end_time":119.334},{"word":"automatically","start_time":119.495,"end_time":120.117},{"word":"take","start_time":120.178,"end_time":120.358},{"word":"care","start_time":120.418,"end_time":120.579},{"word":"of","start_time":120.599,"end_time":120.659},{"word":"these","start_time":120.7,"end_time":120.86},{"word":"two","start_time":120.92,"end_time":121.081},{"word":"issues.","start_time":121.161,"end_time":121.503}],"alternatives":[],"language":"en"},{"transcript":"Let's take a look at the","confidence":0.5676666666666667,"words":[{"word":"Let's","start_time":122.707,"end_time":122.888},{"word":"take","start_time":122.928,"end_time":123.109},{"word":"a","start_time":123.149,"end_time":123.169},{"word":"look","start_time":123.209,"end_time":123.309},{"word":"at","start_time":123.33,"end_time":123.37},{"word":"the","start_time":123.39,"end_time":123.45}],"alternatives":[],"language":"en"},{"transcript":" actual code and see how to integrate Cloudinary.","confidence":0.8392499999999999,"words":[{"word":"actual","start_time":123.631,"end_time":123.992},{"word":"code","start_time":124.053,"end_time":124.294},{"word":"and","start_time":124.394,"end_time":124.495},{"word":"see","start_time":124.555,"end_time":124.716},{"word":"how","start_time":124.736,"end_time":124.836},{"word":"to","start_time":124.856,"end_time":124.917},{"word":"integrate","start_time":124.977,"end_time":125.379},{"word":"Cloudinary.","start_time":125.419,"end_time":125.961}],"alternatives":[],"language":"en"},{"transcript":"We'll see the results in the app later.","confidence":0.757375,"words":[{"word":"We'll","start_time":126.484,"end_time":126.664},{"word":"see","start_time":126.684,"end_time":126.865},{"word":"the","start_time":126.905,"end_time":126.986},{"word":"results","start_time":127.026,"end_time":127.347},{"word":"in","start_time":127.388,"end_time":127.448},{"word":"the","start_time":127.468,"end_time":127.528},{"word":"app","start_time":127.629,"end_time":127.789},{"word":"later.","start_time":127.83,"end_time":127.93}],"alternatives":[],"language":"en"},{"transcript":" First of all, in the settings.py file, let's take this section of code out.","confidence":0.7431428571428571,"words":[{"word":"First","start_time":128.802,"end_time":129.023},{"word":"of","start_time":129.063,"end_time":129.123},{"word":"all,","start_time":129.204,"end_time":129.304},{"word":"in","start_time":129.324,"end_time":129.365},{"word":"the","start_time":129.405,"end_time":129.505},{"word":"settings.py","start_time":129.566,"end_time":130.651},{"word":"file,","start_time":130.691,"end_time":131.032},{"word":"let's","start_time":131.173,"end_time":131.374},{"word":"take","start_time":131.434,"end_time":131.595},{"word":"this","start_time":131.655,"end_time":131.776},{"word":"section","start_time":131.796,"end_time":132.137},{"word":"of","start_time":132.178,"end_time":132.238},{"word":"code","start_time":132.359,"end_time":132.58},{"word":"out.","start_time":132.6,"end_time":132.66}],"alternatives":[],"language":"en"},{"transcript":" It's for storing and serving media files within a web application,","confidence":0.8136363636363637,"words":[{"word":"It's","start_time":133.323,"end_time":133.463},{"word":"for","start_time":133.504,"end_time":133.624},{"word":"storing","start_time":133.685,"end_time":134.067},{"word":"and","start_time":134.108,"end_time":134.208},{"word":"serving","start_time":134.248,"end_time":134.55},{"word":"media","start_time":134.591,"end_time":134.852},{"word":"files","start_time":134.892,"end_time":135.235},{"word":"within","start_time":135.275,"end_time":135.516},{"word":"a","start_time":135.537,"end_time":135.557},{"word":"web","start_time":135.597,"end_time":135.758},{"word":"application,","start_time":135.798,"end_time":136.08}],"alternatives":[],"language":"en"},{"transcript":" and we don't need it because we're going to use Cloudinary for that.","confidence":0.6543846153846155,"words":[{"word":"and","start_time":136.662,"end_time":136.743},{"word":"we","start_time":136.763,"end_time":136.843},{"word":"don't","start_time":136.864,"end_time":137.045},{"word":"need","start_time":137.126,"end_time":137.307},{"word":"it","start_time":137.347,"end_time":137.408},{"word":"because","start_time":137.629,"end_time":137.871},{"word":"we're","start_time":137.891,"end_time":138.012},{"word":"going","start_time":138.032,"end_time":138.133},{"word":"to","start_time":138.153,"end_time":138.193},{"word":"use","start_time":138.254,"end_time":138.374},{"word":"Cloudinary","start_time":138.435,"end_time":138.939},{"word":"for","start_time":138.979,"end_time":139.039},{"word":"that.","start_time":139.059,"end_time":139.14}],"alternatives":[],"language":"en"},{"transcript":" Let's add the .env library used to import credentials from a .env file.","confidence":0.7066153846153846,"words":[{"word":"Let's","start_time":140.182,"end_time":140.403},{"word":"add","start_time":140.443,"end_time":140.563},{"word":"the","start_time":140.583,"end_time":140.664},{"word":".env","start_time":141.066,"end_time":141.226},{"word":"library","start_time":141.347,"end_time":141.889},{"word":"used","start_time":142.03,"end_time":142.171},{"word":"to","start_time":142.191,"end_time":142.271},{"word":"import","start_time":142.331,"end_time":142.693},{"word":"credentials","start_time":142.753,"end_time":143.296},{"word":"from","start_time":143.336,"end_time":143.477},{"word":"a","start_time":143.517,"end_time":143.537},{"word":".env","start_time":143.698,"end_time":144.019},{"word":"file.","start_time":144.16,"end_time":144.24}],"alternatives":[],"language":"en"},{"transcript":" In the .env file, I need to store my Cloudinary environment variable that I got from the Cloudinary console.","confidence":0.7800526315789476,"words":[{"word":"In","start_time":145.842,"end_time":145.922},{"word":"the","start_time":145.942,"end_time":146.023},{"word":".env","start_time":146.344,"end_time":146.504},{"word":"file,","start_time":146.585,"end_time":146.926},{"word":"I","start_time":147.026,"end_time":147.086},{"word":"need","start_time":147.127,"end_time":147.287},{"word":"to","start_time":147.307,"end_time":147.408},{"word":"store","start_time":147.448,"end_time":147.668},{"word":"my","start_time":147.689,"end_time":147.789},{"word":"Cloudinary","start_time":147.849,"end_time":148.391},{"word":"environment","start_time":148.431,"end_time":148.913},{"word":"variable","start_time":148.953,"end_time":149.415},{"word":"that","start_time":149.455,"end_time":149.575},{"word":"I","start_time":149.616,"end_time":149.676},{"word":"got","start_time":149.716,"end_time":149.917},{"word":"from","start_time":149.957,"end_time":150.097},{"word":"the","start_time":150.117,"end_time":150.178},{"word":"Cloudinary","start_time":150.238,"end_time":150.699},{"word":"console.","start_time":150.719,"end_time":150.86}],"alternatives":[],"language":"en"},{"transcript":" Let's see what I have to do to the models.py file in order to integrate Cloudinary.","confidence":0.7623749999999999,"words":[{"word":"Let's","start_time":152.142,"end_time":152.303},{"word":"see","start_time":152.343,"end_time":152.463},{"word":"what","start_time":152.483,"end_time":152.624},{"word":"I","start_time":152.644,"end_time":152.684},{"word":"have","start_time":152.745,"end_time":152.885},{"word":"to","start_time":152.905,"end_time":152.986},{"word":"do","start_time":153.026,"end_time":153.167},{"word":"to","start_time":153.207,"end_time":153.327},{"word":"the","start_time":153.348,"end_time":153.408},{"word":"models.py","start_time":153.468,"end_time":154.292},{"word":"file","start_time":154.352,"end_time":154.634},{"word":"in","start_time":154.674,"end_time":154.774},{"word":"order","start_time":154.875,"end_time":155.096},{"word":"to","start_time":155.136,"end_time":155.196},{"word":"integrate","start_time":155.237,"end_time":155.618},{"word":"Cloudinary.","start_time":155.639,"end_time":155.94}],"alternatives":[],"language":"en"},{"transcript":" First, let's take out the image field, and let's replace it with the Cloudinary field","confidence":0.7493333333333332,"words":[{"word":"First,","start_time":157.111,"end_time":157.392},{"word":"let's","start_time":157.633,"end_time":157.874},{"word":"take","start_time":157.914,"end_time":158.075},{"word":"out","start_time":158.135,"end_time":158.216},{"word":"the","start_time":158.236,"end_time":158.336},{"word":"image","start_time":158.396,"end_time":158.637},{"word":"field,","start_time":158.697,"end_time":159.019},{"word":"and","start_time":159.661,"end_time":159.761},{"word":"let's","start_time":159.782,"end_time":159.982},{"word":"replace","start_time":160.022,"end_time":160.524},{"word":"it","start_time":160.605,"end_time":160.665},{"word":"with","start_time":161.006,"end_time":161.167},{"word":"the","start_time":161.187,"end_time":161.247},{"word":"Cloudinary","start_time":161.287,"end_time":161.87},{"word":"field","start_time":161.89,"end_time":161.99}],"alternatives":[],"language":"en"},{"transcript":" by adding an import statement and adding the actual field.","confidence":0.7989,"words":[{"word":"by","start_time":162.513,"end_time":162.613},{"word":"adding","start_time":162.694,"end_time":162.895},{"word":"an","start_time":162.915,"end_time":162.996},{"word":"import","start_time":163.076,"end_time":163.438},{"word":"statement","start_time":163.458,"end_time":163.921},{"word":"and","start_time":164.484,"end_time":164.564},{"word":"adding","start_time":164.685,"end_time":164.926},{"word":"the","start_time":164.946,"end_time":165.027},{"word":"actual","start_time":165.107,"end_time":165.449},{"word":"field.","start_time":165.469,"end_time":165.63}],"alternatives":[],"language":"en"},{"transcript":" The Cloudinary field gives me access to all of the Cloudinary functionality,","confidence":0.7407500000000001,"words":[{"word":"The","start_time":167.093,"end_time":167.194},{"word":"Cloudinary","start_time":167.234,"end_time":167.797},{"word":"field","start_time":167.877,"end_time":168.098},{"word":"gives","start_time":168.139,"end_time":168.32},{"word":"me","start_time":168.36,"end_time":168.46},{"word":"access","start_time":168.621,"end_time":168.943},{"word":"to","start_time":168.963,"end_time":169.064},{"word":"all","start_time":169.224,"end_time":169.365},{"word":"of","start_time":169.385,"end_time":169.446},{"word":"the","start_time":169.486,"end_time":169.546},{"word":"Cloudinary","start_time":169.586,"end_time":170.009},{"word":"functionality,","start_time":170.029,"end_time":170.29}],"alternatives":[],"language":"en"},{"transcript":" including automatic upload to Cloudinary,","confidence":0.7262,"words":[{"word":"including","start_time":171.314,"end_time":171.758},{"word":"automatic","start_time":171.899,"end_time":172.323},{"word":"upload","start_time":172.444,"end_time":172.766},{"word":"to","start_time":172.786,"end_time":172.827},{"word":"Cloudinary,","start_time":172.887,"end_time":173.21}],"alternatives":[],"language":"en"},{"transcript":" and also saving the image URLs to my database","confidence":0.8053333333333333,"words":[{"word":"and","start_time":174.195,"end_time":174.276},{"word":"also","start_time":174.316,"end_time":174.558},{"word":"saving","start_time":174.678,"end_time":175.0},{"word":"the","start_time":175.041,"end_time":175.121},{"word":"image","start_time":175.182,"end_time":175.363},{"word":"URLs","start_time":175.443,"end_time":175.927},{"word":"to","start_time":175.947,"end_time":176.027},{"word":"my","start_time":176.067,"end_time":176.188},{"word":"database","start_time":176.229,"end_time":176.45}],"alternatives":[],"language":"en"},{"transcript":" so that I can easily access them later and display those images.","confidence":0.73875,"words":[{"word":"so","start_time":176.893,"end_time":176.973},{"word":"that","start_time":176.993,"end_time":177.114},{"word":"I","start_time":177.134,"end_time":177.174},{"word":"can","start_time":177.215,"end_time":177.356},{"word":"easily","start_time":177.476,"end_time":177.778},{"word":"access","start_time":177.939,"end_time":178.281},{"word":"them","start_time":178.322,"end_time":178.483},{"word":"later","start_time":178.543,"end_time":178.784},{"word":"and","start_time":178.825,"end_time":178.925},{"word":"display","start_time":178.945,"end_time":179.328},{"word":"those","start_time":179.368,"end_time":179.529},{"word":"images.","start_time":179.569,"end_time":179.69}],"alternatives":[],"language":"en"},{"transcript":" Let's take a look at our forms.py file.","confidence":0.7586250000000001,"words":[{"word":"Let's","start_time":180.914,"end_time":181.095},{"word":"take","start_time":181.136,"end_time":181.317},{"word":"a","start_time":181.338,"end_time":181.358},{"word":"look","start_time":181.378,"end_time":181.519},{"word":"at","start_time":181.539,"end_time":181.58},{"word":"our","start_time":181.62,"end_time":181.701},{"word":"forms.py","start_time":181.802,"end_time":182.588},{"word":"file.","start_time":182.609,"end_time":182.709}],"alternatives":[],"language":"en"},{"transcript":" Import and add the Cloudinary file field.","confidence":0.7807142857142858,"words":[{"word":"Import","start_time":184.235,"end_time":184.577},{"word":"and","start_time":184.598,"end_time":184.699},{"word":"add","start_time":184.779,"end_time":184.92},{"word":"the","start_time":184.941,"end_time":185.021},{"word":"Cloudinary","start_time":185.041,"end_time":185.566},{"word":"file","start_time":185.627,"end_time":185.909},{"word":"field.","start_time":185.929,"end_time":186.03}],"alternatives":[],"language":"en"},{"transcript":" to define the form field for the image upload.","confidence":0.7893333333333334,"words":[{"word":"to","start_time":186.822,"end_time":186.923},{"word":"define","start_time":186.963,"end_time":187.367},{"word":"the","start_time":187.388,"end_time":187.489},{"word":"form","start_time":187.549,"end_time":187.791},{"word":"field","start_time":187.832,"end_time":188.054},{"word":"for","start_time":188.094,"end_time":188.195},{"word":"the","start_time":188.216,"end_time":188.276},{"word":"image","start_time":188.337,"end_time":188.518},{"word":"upload.","start_time":188.539,"end_time":188.66}],"alternatives":[],"language":"en"},{"transcript":" This field specifies that the form will handle file uploads and utilize Cloudinary for storage.","confidence":0.8291333333333334,"words":[{"word":"This","start_time":190.362,"end_time":190.523},{"word":"field","start_time":190.643,"end_time":190.924},{"word":"specifies","start_time":191.004,"end_time":191.647},{"word":"that","start_time":191.707,"end_time":191.827},{"word":"the","start_time":191.847,"end_time":191.928},{"word":"form","start_time":192.028,"end_time":192.229},{"word":"will","start_time":192.249,"end_time":192.429},{"word":"handle","start_time":192.45,"end_time":192.751},{"word":"file","start_time":192.811,"end_time":193.092},{"word":"uploads","start_time":193.172,"end_time":193.574},{"word":"and","start_time":193.674,"end_time":193.774},{"word":"utilize","start_time":193.855,"end_time":194.256},{"word":"Cloudinary","start_time":194.316,"end_time":194.838},{"word":"for","start_time":194.878,"end_time":194.999},{"word":"storage.","start_time":195.079,"end_time":195.32}],"alternatives":[],"language":"en"},{"transcript":" The views.py file doesn't need to change at all.","confidence":0.8036666666666666,"words":[{"word":"The","start_time":198.622,"end_time":198.722},{"word":"views.py","start_time":198.763,"end_time":199.585},{"word":"file","start_time":199.626,"end_time":199.947},{"word":"doesn't","start_time":200.027,"end_time":200.288},{"word":"need","start_time":200.328,"end_time":200.469},{"word":"to","start_time":200.489,"end_time":200.549},{"word":"change","start_time":200.609,"end_time":200.83},{"word":"at","start_time":200.87,"end_time":200.93},{"word":"all.","start_time":201.091,"end_time":201.211}],"alternatives":[],"language":"en"},{"transcript":"Because I now use the Cloudinary field in my","confidence":0.6383333333333332,"words":[{"word":"Because","start_time":201.974,"end_time":202.255},{"word":"I","start_time":202.295,"end_time":202.375},{"word":"now","start_time":202.415,"end_time":202.556},{"word":"use","start_time":202.636,"end_time":202.756},{"word":"the","start_time":202.776,"end_time":202.837},{"word":"Cloudinary","start_time":202.877,"end_time":203.439},{"word":"field","start_time":203.499,"end_time":203.68},{"word":"in","start_time":203.7,"end_time":203.74},{"word":"my","start_time":203.76,"end_time":203.8}],"alternatives":[],"language":"en"},{"transcript":" models, valid upload submissions are automatically saved to Cloudinary, and the URLs to the uploaded","confidence":0.7449999999999999,"words":[{"word":"models,","start_time":203.981,"end_time":204.362},{"word":"valid","start_time":204.904,"end_time":205.265},{"word":"upload","start_time":205.365,"end_time":205.687},{"word":"submissions","start_time":205.707,"end_time":206.128},{"word":"are","start_time":206.188,"end_time":206.289},{"word":"automatically","start_time":206.389,"end_time":206.951},{"word":"saved","start_time":207.011,"end_time":207.252},{"word":"to","start_time":207.272,"end_time":207.352},{"word":"Cloudinary,","start_time":207.372,"end_time":207.934},{"word":"and","start_time":208.316,"end_time":208.396},{"word":"the","start_time":208.416,"end_time":208.496},{"word":"URLs","start_time":208.557,"end_time":209.018},{"word":"to","start_time":209.058,"end_time":209.159},{"word":"the","start_time":209.179,"end_time":209.259},{"word":"uploaded","start_time":209.359,"end_time":209.52}],"alternatives":[],"language":"en"},{"transcript":" images are saved to the database.","confidence":0.8038333333333333,"words":[{"word":"images","start_time":209.761,"end_time":210.082},{"word":"are","start_time":210.122,"end_time":210.222},{"word":"saved","start_time":210.262,"end_time":210.483},{"word":"to","start_time":210.503,"end_time":210.603},{"word":"the","start_time":210.623,"end_time":210.684},{"word":"database.","start_time":210.724,"end_time":211.165}],"alternatives":[],"language":"en"},{"transcript":"Once the file is uploaded, it redirects to the display view.","confidence":0.8247272727272726,"words":[{"word":"Once","start_time":212.309,"end_time":212.449},{"word":"the","start_time":212.489,"end_time":212.57},{"word":"file","start_time":212.61,"end_time":212.85},{"word":"is","start_time":212.911,"end_time":213.011},{"word":"uploaded,","start_time":213.091,"end_time":213.533},{"word":"it","start_time":213.954,"end_time":214.014},{"word":"redirects","start_time":214.094,"end_time":214.696},{"word":"to","start_time":214.756,"end_time":215.298},{"word":"the","start_time":215.338,"end_time":215.398},{"word":"display","start_time":215.438,"end_time":215.82},{"word":"view.","start_time":215.84,"end_time":215.92}],"alternatives":[],"language":"en"},{"transcript":" The display function retrieves all photos stored in the database through the photo model","confidence":0.8037857142857142,"words":[{"word":"The","start_time":216.832,"end_time":216.932},{"word":"display","start_time":216.973,"end_time":217.414},{"word":"function","start_time":217.495,"end_time":217.836},{"word":"retrieves","start_time":217.876,"end_time":218.258},{"word":"all","start_time":218.439,"end_time":218.599},{"word":"photos","start_time":218.68,"end_time":219.041},{"word":"stored","start_time":219.122,"end_time":219.443},{"word":"in","start_time":219.463,"end_time":219.523},{"word":"the","start_time":219.543,"end_time":219.604},{"word":"database","start_time":219.644,"end_time":220.086},{"word":"through","start_time":220.186,"end_time":220.447},{"word":"the","start_time":220.487,"end_time":220.548},{"word":"photo","start_time":220.668,"end_time":220.989},{"word":"model","start_time":221.01,"end_time":221.11}],"alternatives":[],"language":"en"},{"transcript":" and renders them in the display.html template for showcasing the uploaded images.","confidence":0.7839999999999999,"words":[{"word":"and","start_time":221.471,"end_time":221.552},{"word":"renders","start_time":221.632,"end_time":221.953},{"word":"them","start_time":221.994,"end_time":222.114},{"word":"in","start_time":222.154,"end_time":222.214},{"word":"the","start_time":222.255,"end_time":222.335},{"word":"display.html","start_time":222.375,"end_time":223.66},{"word":"template","start_time":223.7,"end_time":224.162},{"word":"for","start_time":224.584,"end_time":224.725},{"word":"showcasing","start_time":224.805,"end_time":225.367},{"word":"the","start_time":225.407,"end_time":225.468},{"word":"uploaded","start_time":225.528,"end_time":225.889},{"word":"images.","start_time":225.909,"end_time":226.07}],"alternatives":[],"language":"en"},{"transcript":" Finally, in the display.html file, let's remove the image source","confidence":0.7327,"words":[{"word":"Finally,","start_time":227.892,"end_time":228.334},{"word":"in","start_time":228.575,"end_time":228.655},{"word":"the","start_time":228.675,"end_time":228.756},{"word":"display.html","start_time":228.816,"end_time":229.962},{"word":"file,","start_time":230.022,"end_time":230.364},{"word":"let's","start_time":230.505,"end_time":230.726},{"word":"remove","start_time":230.766,"end_time":231.027},{"word":"the","start_time":231.047,"end_time":231.128},{"word":"image","start_time":231.208,"end_time":231.409},{"word":"source","start_time":231.429,"end_time":231.55}],"alternatives":[],"language":"en"},{"transcript":" and instead use Cloudinary's special tags to fetch and show images stored in Cloudinary.","confidence":0.8111428571428572,"words":[{"word":"and","start_time":231.932,"end_time":232.012},{"word":"instead","start_time":232.072,"end_time":232.394},{"word":"use","start_time":232.454,"end_time":232.574},{"word":"Cloudinary's","start_time":232.635,"end_time":233.197},{"word":"special","start_time":233.277,"end_time":233.639},{"word":"tags","start_time":233.679,"end_time":234.061},{"word":"to","start_time":234.522,"end_time":234.643},{"word":"fetch","start_time":234.723,"end_time":234.944},{"word":"and","start_time":235.004,"end_time":235.085},{"word":"show","start_time":235.125,"end_time":235.286},{"word":"images","start_time":235.366,"end_time":235.667},{"word":"stored","start_time":235.727,"end_time":235.948},{"word":"in","start_time":235.968,"end_time":236.049},{"word":"Cloudinary.","start_time":236.069,"end_time":236.33}],"alternatives":[],"language":"en"},{"transcript":" The Cloudinary helper tag works through our photos, adding each image to our app.","confidence":0.8058571428571427,"words":[{"word":"The","start_time":237.413,"end_time":237.493},{"word":"Cloudinary","start_time":237.533,"end_time":238.056},{"word":"helper","start_time":238.096,"end_time":238.377},{"word":"tag","start_time":238.417,"end_time":238.719},{"word":"works","start_time":238.879,"end_time":239.1},{"word":"through","start_time":239.12,"end_time":239.301},{"word":"our","start_time":239.341,"end_time":239.442},{"word":"photos,","start_time":239.482,"end_time":239.884},{"word":"adding","start_time":240.065,"end_time":240.286},{"word":"each","start_time":240.406,"end_time":240.587},{"word":"image","start_time":240.687,"end_time":240.908},{"word":"to","start_time":240.949,"end_time":241.029},{"word":"our","start_time":241.069,"end_time":241.17},{"word":"app.","start_time":241.19,"end_time":241.25}],"alternatives":[],"language":"en"},{"transcript":" So far, the cladinary helper methods have streamlined lots of processes in this Django app.","confidence":0.7494666666666666,"words":[{"word":"So","start_time":243.662,"end_time":243.863},{"word":"far,","start_time":243.923,"end_time":244.164},{"word":"the","start_time":244.204,"end_time":244.305},{"word":"cladinary","start_time":244.345,"end_time":244.867},{"word":"helper","start_time":244.927,"end_time":245.168},{"word":"methods","start_time":245.208,"end_time":245.53},{"word":"have","start_time":245.59,"end_time":245.71},{"word":"streamlined","start_time":245.771,"end_time":246.253},{"word":"lots","start_time":246.313,"end_time":246.534},{"word":"of","start_time":246.574,"end_time":246.634},{"word":"processes","start_time":246.714,"end_time":247.257},{"word":"in","start_time":247.417,"end_time":247.498},{"word":"this","start_time":247.538,"end_time":247.658},{"word":"Django","start_time":247.698,"end_time":248.0},{"word":"app.","start_time":248.02,"end_time":248.08}],"alternatives":[],"language":"en"},{"transcript":" But as we wrap things up, we're going to solve the two issues that we mentioned in the beginning.","confidence":0.8156842105263158,"words":[{"word":"But","start_time":249.082,"end_time":249.183},{"word":"as","start_time":249.243,"end_time":249.323},{"word":"we","start_time":249.364,"end_time":249.484},{"word":"wrap","start_time":249.524,"end_time":249.765},{"word":"things","start_time":249.786,"end_time":250.007},{"word":"up,","start_time":250.107,"end_time":250.208},{"word":"we're","start_time":250.248,"end_time":250.388},{"word":"going","start_time":250.409,"end_time":250.549},{"word":"to","start_time":250.589,"end_time":250.65},{"word":"solve","start_time":250.73,"end_time":250.931},{"word":"the","start_time":250.971,"end_time":251.052},{"word":"two","start_time":251.172,"end_time":251.373},{"word":"issues","start_time":251.454,"end_time":251.715},{"word":"that","start_time":251.735,"end_time":251.855},{"word":"we","start_time":251.876,"end_time":251.976},{"word":"mentioned","start_time":252.036,"end_time":252.398},{"word":"in","start_time":252.418,"end_time":252.478},{"word":"the","start_time":252.499,"end_time":252.579},{"word":"beginning.","start_time":252.599,"end_time":252.8}],"alternatives":[],"language":"en"},{"transcript":" Remember in our original app that midges were being distorted to fit the designated spots for them?","confidence":0.812,"words":[{"word":"Remember","start_time":254.002,"end_time":254.343},{"word":"in","start_time":254.383,"end_time":254.444},{"word":"our","start_time":254.484,"end_time":254.584},{"word":"original","start_time":254.624,"end_time":254.986},{"word":"app","start_time":255.106,"end_time":255.227},{"word":"that","start_time":255.267,"end_time":255.407},{"word":"midges","start_time":255.448,"end_time":255.769},{"word":"were","start_time":255.829,"end_time":255.97},{"word":"being","start_time":255.99,"end_time":256.191},{"word":"distorted","start_time":256.231,"end_time":256.753},{"word":"to","start_time":256.793,"end_time":256.894},{"word":"fit","start_time":256.954,"end_time":257.114},{"word":"the","start_time":257.155,"end_time":257.255},{"word":"designated","start_time":257.295,"end_time":257.878},{"word":"spots","start_time":257.938,"end_time":258.239},{"word":"for","start_time":258.279,"end_time":258.38},{"word":"them?","start_time":258.4,"end_time":258.48}],"alternatives":[],"language":"en"},{"transcript":" And remember we said the images were a bit too heavy?","confidence":0.8141818181818181,"words":[{"word":"And","start_time":259.624,"end_time":259.684},{"word":"remember","start_time":259.725,"end_time":260.007},{"word":"we","start_time":260.027,"end_time":260.128},{"word":"said","start_time":260.168,"end_time":260.329},{"word":"the","start_time":260.37,"end_time":260.45},{"word":"images","start_time":260.511,"end_time":260.874},{"word":"were","start_time":260.894,"end_time":261.035},{"word":"a","start_time":261.055,"end_time":261.075},{"word":"bit","start_time":261.116,"end_time":261.257},{"word":"too","start_time":261.297,"end_time":261.459},{"word":"heavy?","start_time":261.519,"end_time":261.64}],"alternatives":[],"language":"en"},{"transcript":" Well, let's add a line of code in our Django template that implements on-the-fly transformations right on our web page.","confidence":0.7207999999999999,"words":[{"word":"Well,","start_time":262.961,"end_time":263.122},{"word":"let's","start_time":263.142,"end_time":263.363},{"word":"add","start_time":263.564,"end_time":263.704},{"word":"a","start_time":263.724,"end_time":263.744},{"word":"line","start_time":263.985,"end_time":264.186},{"word":"of","start_time":264.226,"end_time":264.266},{"word":"code","start_time":264.346,"end_time":264.507},{"word":"in","start_time":264.527,"end_time":264.607},{"word":"our","start_time":264.627,"end_time":264.728},{"word":"Django","start_time":264.748,"end_time":265.089},{"word":"template","start_time":265.129,"end_time":265.49},{"word":"that","start_time":265.51,"end_time":265.631},{"word":"implements","start_time":265.731,"end_time":266.153},{"word":"on-the-fly","start_time":266.313,"end_time":266.755},{"word":"transformations","start_time":266.795,"end_time":267.497},{"word":"right","start_time":267.598,"end_time":267.758},{"word":"on","start_time":267.798,"end_time":267.858},{"word":"our","start_time":267.899,"end_time":267.979},{"word":"web","start_time":267.999,"end_time":268.139},{"word":"page.","start_time":268.16,"end_time":268.3}],"alternatives":[],"language":"en"},{"transcript":" We can easily optimize with the quality parameter and resize and crop our images.","confidence":0.7772142857142857,"words":[{"word":"We","start_time":269.252,"end_time":269.333},{"word":"can","start_time":269.373,"end_time":269.513},{"word":"easily","start_time":269.614,"end_time":269.915},{"word":"optimize","start_time":270.096,"end_time":270.558},{"word":"with","start_time":270.598,"end_time":270.719},{"word":"the","start_time":270.739,"end_time":270.799},{"word":"quality","start_time":270.86,"end_time":271.302},{"word":"parameter","start_time":271.342,"end_time":271.824},{"word":"and","start_time":271.945,"end_time":272.025},{"word":"resize","start_time":272.085,"end_time":272.527},{"word":"and","start_time":272.567,"end_time":272.648},{"word":"crop","start_time":272.668,"end_time":272.869},{"word":"our","start_time":272.889,"end_time":272.969},{"word":"images.","start_time":273.009,"end_time":273.15}],"alternatives":[],"language":"en"},{"transcript":" The background gen fill parameter utilizes AI to fill the background for images with a different aspect ratio than the one-to-one specified in this transformation.","confidence":0.8049999999999998,"words":[{"word":"The","start_time":274.231,"end_time":274.332},{"word":"background","start_time":274.412,"end_time":274.913},{"word":"gen","start_time":275.013,"end_time":275.254},{"word":"fill","start_time":275.294,"end_time":275.454},{"word":"parameter","start_time":275.494,"end_time":275.915},{"word":"utilizes","start_time":276.075,"end_time":276.677},{"word":"AI","start_time":276.697,"end_time":277.318},{"word":"to","start_time":277.418,"end_time":277.539},{"word":"fill","start_time":277.599,"end_time":277.799},{"word":"the","start_time":277.839,"end_time":277.92},{"word":"background","start_time":277.96,"end_time":278.381},{"word":"for","start_time":278.441,"end_time":278.561},{"word":"images","start_time":278.621,"end_time":278.942},{"word":"with","start_time":279.002,"end_time":279.142},{"word":"a","start_time":279.182,"end_time":279.202},{"word":"different","start_time":279.283,"end_time":279.603},{"word":"aspect","start_time":279.744,"end_time":280.104},{"word":"ratio","start_time":280.144,"end_time":280.505},{"word":"than","start_time":280.525,"end_time":280.666},{"word":"the","start_time":280.686,"end_time":280.766},{"word":"one-to-one","start_time":280.866,"end_time":281.367},{"word":"specified","start_time":281.407,"end_time":282.009},{"word":"in","start_time":282.049,"end_time":282.109},{"word":"this","start_time":282.149,"end_time":282.249},{"word":"transformation.","start_time":282.269,"end_time":282.63}],"alternatives":[],"language":"en"},{"transcript":" So whatever the image is, portrait or landscape, it will fit perfectly in the spot we want it to fit in.","confidence":0.7250952380952381,"words":[{"word":"So","start_time":283.992,"end_time":284.112},{"word":"whatever","start_time":284.152,"end_time":284.493},{"word":"the","start_time":284.534,"end_time":284.614},{"word":"image","start_time":284.674,"end_time":285.095},{"word":"is,","start_time":285.115,"end_time":285.156},{"word":"portrait","start_time":285.437,"end_time":285.878},{"word":"or","start_time":285.958,"end_time":286.038},{"word":"landscape,","start_time":286.079,"end_time":286.64},{"word":"it","start_time":287.262,"end_time":287.303},{"word":"will","start_time":287.343,"end_time":287.483},{"word":"fit","start_time":287.523,"end_time":287.664},{"word":"perfectly","start_time":287.744,"end_time":288.206},{"word":"in","start_time":288.266,"end_time":288.346},{"word":"the","start_time":288.366,"end_time":288.446},{"word":"spot","start_time":288.487,"end_time":288.747},{"word":"we","start_time":288.767,"end_time":288.888},{"word":"want","start_time":288.928,"end_time":289.068},{"word":"it","start_time":289.088,"end_time":289.169},{"word":"to","start_time":289.189,"end_time":289.289},{"word":"fit","start_time":289.349,"end_time":289.49},{"word":"in.","start_time":289.51,"end_time":289.55}],"alternatives":[],"language":"en"},{"transcript":" Now let's run the app again and see the differences using Cloudinary.","confidence":0.8118333333333333,"words":[{"word":"Now","start_time":291.393,"end_time":291.534},{"word":"let's","start_time":291.574,"end_time":291.795},{"word":"run","start_time":291.835,"end_time":291.956},{"word":"the","start_time":291.996,"end_time":292.056},{"word":"app","start_time":292.137,"end_time":292.278},{"word":"again","start_time":292.318,"end_time":292.599},{"word":"and","start_time":292.7,"end_time":292.8},{"word":"see","start_time":292.84,"end_time":293.001},{"word":"the","start_time":293.042,"end_time":293.122},{"word":"differences","start_time":293.182,"end_time":293.765},{"word":"using","start_time":293.926,"end_time":294.167},{"word":"Cloudinary.","start_time":294.288,"end_time":294.69}],"alternatives":[],"language":"en"},{"transcript":" And voila!","confidence":0.5805,"words":[{"word":"And","start_time":298.781,"end_time":298.881},{"word":"voila!","start_time":298.901,"end_time":299.242}],"alternatives":[],"language":"en"},{"transcript":"Here are all my images displayed, and now they're all fitting nicely into their spaces.","confidence":0.7853333333333332,"words":[{"word":"Here","start_time":299.985,"end_time":300.205},{"word":"are","start_time":300.286,"end_time":300.406},{"word":"all","start_time":300.446,"end_time":300.587},{"word":"my","start_time":300.627,"end_time":300.727},{"word":"images","start_time":300.787,"end_time":301.149},{"word":"displayed,","start_time":301.209,"end_time":301.731},{"word":"and","start_time":302.453,"end_time":302.553},{"word":"now","start_time":302.613,"end_time":302.774},{"word":"they're","start_time":302.814,"end_time":303.035},{"word":"all","start_time":303.075,"end_time":303.236},{"word":"fitting","start_time":303.296,"end_time":303.557},{"word":"nicely","start_time":303.597,"end_time":303.938},{"word":"into","start_time":303.998,"end_time":304.159},{"word":"their","start_time":304.199,"end_time":304.339},{"word":"spaces.","start_time":304.359,"end_time":304.56}],"alternatives":[],"language":"en"},{"transcript":" I want you to notice this picture in particular, which was a narrow portrait before","confidence":0.8118000000000001,"words":[{"word":"I","start_time":305.962,"end_time":306.023},{"word":"want","start_time":306.063,"end_time":306.284},{"word":"you","start_time":306.324,"end_time":306.424},{"word":"to","start_time":306.465,"end_time":306.525},{"word":"notice","start_time":306.585,"end_time":306.866},{"word":"this","start_time":306.906,"end_time":307.067},{"word":"picture","start_time":307.168,"end_time":307.529},{"word":"in","start_time":307.569,"end_time":307.63},{"word":"particular,","start_time":307.69,"end_time":308.232},{"word":"which","start_time":308.654,"end_time":308.815},{"word":"was","start_time":308.855,"end_time":308.995},{"word":"a","start_time":309.036,"end_time":309.076},{"word":"narrow","start_time":309.156,"end_time":309.477},{"word":"portrait","start_time":309.538,"end_time":309.919},{"word":"before","start_time":309.939,"end_time":310.08}],"alternatives":[],"language":"en"},{"transcript":" and now fits into a square box, because Kladiner used its AI capabilities to paint out on either","confidence":0.7995,"words":[{"word":"and","start_time":310.768,"end_time":310.889},{"word":"now","start_time":310.929,"end_time":311.109},{"word":"fits","start_time":311.189,"end_time":311.39},{"word":"into","start_time":311.45,"end_time":311.63},{"word":"a","start_time":311.67,"end_time":311.69},{"word":"square","start_time":311.75,"end_time":312.011},{"word":"box,","start_time":312.051,"end_time":312.392},{"word":"because","start_time":312.872,"end_time":313.133},{"word":"Kladiner","start_time":313.213,"end_time":313.754},{"word":"used","start_time":313.874,"end_time":314.035},{"word":"its","start_time":314.095,"end_time":314.195},{"word":"AI","start_time":314.375,"end_time":314.696},{"word":"capabilities","start_time":314.756,"end_time":315.458},{"word":"to","start_time":315.538,"end_time":315.658},{"word":"paint","start_time":315.738,"end_time":316.059},{"word":"out","start_time":316.239,"end_time":316.379},{"word":"on","start_time":316.48,"end_time":316.54},{"word":"either","start_time":316.56,"end_time":316.68}],"alternatives":[],"language":"en"},{"transcript":" side so that the image fits the space.","confidence":0.7796249999999999,"words":[{"word":"side","start_time":316.961,"end_time":317.322},{"word":"so","start_time":317.764,"end_time":317.884},{"word":"that","start_time":317.904,"end_time":318.065},{"word":"the","start_time":318.085,"end_time":318.185},{"word":"image","start_time":318.245,"end_time":318.506},{"word":"fits","start_time":318.566,"end_time":318.787},{"word":"the","start_time":318.827,"end_time":318.927},{"word":"space.","start_time":318.968,"end_time":319.309}],"alternatives":[],"language":"en"},{"transcript":"What about the image size that we're trying to reduce?","confidence":0.8119,"words":[{"word":"What","start_time":320.914,"end_time":321.054},{"word":"about","start_time":321.075,"end_time":321.255},{"word":"the","start_time":321.275,"end_time":321.335},{"word":"image","start_time":321.396,"end_time":321.616},{"word":"size","start_time":321.697,"end_time":321.957},{"word":"that","start_time":321.977,"end_time":322.078},{"word":"we're","start_time":322.098,"end_time":322.218},{"word":"trying","start_time":322.238,"end_time":322.439},{"word":"to","start_time":322.459,"end_time":322.539},{"word":"reduce?","start_time":322.6,"end_time":322.74}],"alternatives":[],"language":"en"},{"transcript":" Well, let's open the Media Inspector Chrome extension and check.","confidence":0.7913,"words":[{"word":"Well,","start_time":324.003,"end_time":324.144},{"word":"let's","start_time":324.184,"end_time":324.385},{"word":"open","start_time":324.506,"end_time":324.687},{"word":"the","start_time":324.728,"end_time":324.788},{"word":"Media","start_time":324.828,"end_time":325.09},{"word":"Inspector","start_time":325.11,"end_time":325.653},{"word":"Chrome","start_time":325.714,"end_time":325.955},{"word":"extension","start_time":325.996,"end_time":326.479},{"word":"and","start_time":326.519,"end_time":326.579},{"word":"check.","start_time":326.599,"end_time":326.7}],"alternatives":[],"language":"en"},{"transcript":" We see that we're serving the image now from Cloudinary, and we also see that the image size is 20.11 kilobytes,","confidence":0.7673809523809522,"words":[{"word":"We","start_time":328.05,"end_time":328.151},{"word":"see","start_time":328.231,"end_time":328.391},{"word":"that","start_time":328.431,"end_time":328.532},{"word":"we're","start_time":328.572,"end_time":328.732},{"word":"serving","start_time":328.792,"end_time":329.093},{"word":"the","start_time":329.113,"end_time":329.194},{"word":"image","start_time":329.274,"end_time":329.494},{"word":"now","start_time":329.555,"end_time":329.695},{"word":"from","start_time":329.735,"end_time":329.896},{"word":"Cloudinary,","start_time":329.956,"end_time":330.598},{"word":"and","start_time":331.239,"end_time":331.34},{"word":"we","start_time":331.38,"end_time":331.48},{"word":"also","start_time":331.6,"end_time":331.881},{"word":"see","start_time":331.941,"end_time":332.162},{"word":"that","start_time":332.202,"end_time":332.322},{"word":"the","start_time":332.363,"end_time":332.443},{"word":"image","start_time":332.503,"end_time":332.744},{"word":"size","start_time":332.824,"end_time":333.105},{"word":"is","start_time":333.125,"end_time":333.165},{"word":"20.11","start_time":333.225,"end_time":333.305},{"word":"kilobytes,","start_time":333.325,"end_time":333.787}],"alternatives":[],"language":"en"},{"transcript":" which is a huge saving from the previous 302.8 kilobytes without Cloudinary.","confidence":0.6138333333333333,"words":[{"word":"which","start_time":335.772,"end_time":335.933},{"word":"is","start_time":335.993,"end_time":336.073},{"word":"a","start_time":336.093,"end_time":336.154},{"word":"huge","start_time":336.234,"end_time":336.575},{"word":"saving","start_time":336.676,"end_time":337.057},{"word":"from","start_time":337.117,"end_time":337.258},{"word":"the","start_time":337.298,"end_time":337.378},{"word":"previous","start_time":337.438,"end_time":337.84},{"word":"302.8","start_time":337.86,"end_time":338.141},{"word":"kilobytes","start_time":338.181,"end_time":338.482},{"word":"without","start_time":338.502,"end_time":338.763},{"word":"Cloudinary.","start_time":338.803,"end_time":339.024}],"alternatives":[],"language":"en"},{"transcript":" If you think of an app with tons of images, that could be a real tremendous savings.","confidence":0.7729411764705884,"words":[{"word":"If","start_time":342.053,"end_time":342.113},{"word":"you","start_time":342.133,"end_time":342.274},{"word":"think","start_time":342.294,"end_time":342.475},{"word":"of","start_time":342.495,"end_time":342.555},{"word":"an","start_time":342.575,"end_time":342.636},{"word":"app","start_time":342.776,"end_time":342.897},{"word":"with","start_time":342.917,"end_time":343.038},{"word":"tons","start_time":343.138,"end_time":343.359},{"word":"of","start_time":343.379,"end_time":343.44},{"word":"images,","start_time":343.54,"end_time":343.902},{"word":"that","start_time":344.022,"end_time":344.183},{"word":"could","start_time":344.203,"end_time":344.324},{"word":"be","start_time":344.364,"end_time":344.444},{"word":"a","start_time":344.465,"end_time":344.505},{"word":"real","start_time":344.605,"end_time":344.887},{"word":"tremendous","start_time":344.947,"end_time":345.389},{"word":"savings.","start_time":345.409,"end_time":345.55}],"alternatives":[],"language":"en"},{"transcript":" So, now you know how to integrate Cloudinary's magic into your Django projects.","confidence":0.8042307692307692,"words":[{"word":"So,","start_time":347.03,"end_time":347.292},{"word":"now","start_time":348.035,"end_time":348.216},{"word":"you","start_time":348.236,"end_time":348.317},{"word":"know","start_time":348.357,"end_time":348.477},{"word":"how","start_time":348.518,"end_time":348.598},{"word":"to","start_time":348.618,"end_time":348.678},{"word":"integrate","start_time":348.739,"end_time":349.12},{"word":"Cloudinary's","start_time":349.161,"end_time":349.804},{"word":"magic","start_time":349.864,"end_time":350.206},{"word":"into","start_time":350.266,"end_time":350.447},{"word":"your","start_time":350.467,"end_time":350.587},{"word":"Django","start_time":350.607,"end_time":350.909},{"word":"projects.","start_time":350.949,"end_time":351.13}],"alternatives":[],"language":"en"},{"transcript":" Add your Cloudinary credentials to the settings.py file using the .env library.","confidence":0.7651666666666667,"words":[{"word":"Add","start_time":352.372,"end_time":352.493},{"word":"your","start_time":352.513,"end_time":352.654},{"word":"Cloudinary","start_time":352.694,"end_time":353.216},{"word":"credentials","start_time":353.276,"end_time":353.799},{"word":"to","start_time":353.839,"end_time":353.939},{"word":"the","start_time":353.959,"end_time":354.04},{"word":"settings.py","start_time":354.08,"end_time":354.884},{"word":"file","start_time":354.924,"end_time":355.185},{"word":"using","start_time":355.305,"end_time":355.486},{"word":"the","start_time":355.526,"end_time":355.607},{"word":".env","start_time":355.988,"end_time":356.169},{"word":"library.","start_time":356.189,"end_time":356.33}],"alternatives":[],"language":"en"},{"transcript":" Modify the Models.py file to use Cloudinary field for image storage.","confidence":0.8186363636363637,"words":[{"word":"Modify","start_time":357.811,"end_time":358.233},{"word":"the","start_time":358.253,"end_time":358.354},{"word":"Models.py","start_time":358.434,"end_time":359.258},{"word":"file","start_time":359.318,"end_time":359.62},{"word":"to","start_time":359.68,"end_time":359.76},{"word":"use","start_time":359.861,"end_time":359.981},{"word":"Cloudinary","start_time":360.042,"end_time":360.604},{"word":"field","start_time":360.705,"end_time":360.986},{"word":"for","start_time":361.067,"end_time":361.187},{"word":"image","start_time":361.268,"end_time":361.509},{"word":"storage.","start_time":361.549,"end_time":361.75}],"alternatives":[],"language":"en"},{"transcript":" Update the Forms.py file to include Cloudinary file field for seamless image uploads.","confidence":0.7806153846153846,"words":[{"word":"Update","start_time":363.172,"end_time":363.433},{"word":"the","start_time":363.473,"end_time":363.554},{"word":"Forms.py","start_time":363.654,"end_time":364.517},{"word":"file","start_time":364.577,"end_time":364.898},{"word":"to","start_time":364.958,"end_time":365.119},{"word":"include","start_time":365.199,"end_time":365.641},{"word":"Cloudinary","start_time":365.741,"end_time":366.303},{"word":"file","start_time":366.423,"end_time":366.804},{"word":"field","start_time":366.865,"end_time":367.146},{"word":"for","start_time":367.206,"end_time":367.346},{"word":"seamless","start_time":367.447,"end_time":367.908},{"word":"image","start_time":368.028,"end_time":368.229},{"word":"uploads.","start_time":368.249,"end_time":368.49}],"alternatives":[],"language":"en"},{"transcript":" Plus, use the Cloudinary helper tag in your HTML file to showcase images, enabling dynamic transformations and optimizations.","confidence":0.857388888888889,"words":[{"word":"Plus,","start_time":369.791,"end_time":370.172},{"word":"use","start_time":370.333,"end_time":370.473},{"word":"the","start_time":370.493,"end_time":370.573},{"word":"Cloudinary","start_time":370.613,"end_time":371.215},{"word":"helper","start_time":371.255,"end_time":371.536},{"word":"tag","start_time":371.576,"end_time":371.896},{"word":"in","start_time":371.957,"end_time":372.017},{"word":"your","start_time":372.057,"end_time":372.177},{"word":"HTML","start_time":372.378,"end_time":372.879},{"word":"file","start_time":372.939,"end_time":373.28},{"word":"to","start_time":373.721,"end_time":373.841},{"word":"showcase","start_time":373.921,"end_time":374.382},{"word":"images,","start_time":374.462,"end_time":374.863},{"word":"enabling","start_time":375.084,"end_time":375.585},{"word":"dynamic","start_time":375.645,"end_time":376.166},{"word":"transformations","start_time":376.227,"end_time":376.988},{"word":"and","start_time":377.049,"end_time":377.109},{"word":"optimizations.","start_time":377.189,"end_time":377.67}],"alternatives":[],"language":"en"},{"transcript":" For more incredible features, have a look at Cloudinary's comprehensive docs.","confidence":0.8227272727272728,"words":[{"word":"For","start_time":379.073,"end_time":379.213},{"word":"more","start_time":379.254,"end_time":379.435},{"word":"incredible","start_time":379.475,"end_time":379.937},{"word":"features,","start_time":379.997,"end_time":380.499},{"word":"have","start_time":380.741,"end_time":380.942},{"word":"a","start_time":380.962,"end_time":380.982},{"word":"look","start_time":381.022,"end_time":381.203},{"word":"at","start_time":381.243,"end_time":381.283},{"word":"Cloudinary's","start_time":381.343,"end_time":381.946},{"word":"comprehensive","start_time":382.006,"end_time":382.629},{"word":"docs.","start_time":382.67,"end_time":382.77}],"alternatives":[],"language":"en"}]