<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Trideep Barik</title>
    <description>The latest articles on DEV Community by Trideep Barik (@trideepb).</description>
    <link>https://dev.to/trideepb</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F327932%2F85274f13-0b27-4d9b-abb6-a46c2303a4fd.gif</url>
      <title>DEV Community: Trideep Barik</title>
      <link>https://dev.to/trideepb</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/trideepb"/>
    <language>en</language>
    <item>
      <title>Why do I love WebDev &lt;3 ?</title>
      <dc:creator>Trideep Barik</dc:creator>
      <pubDate>Sat, 25 Jul 2020 19:37:23 +0000</pubDate>
      <link>https://dev.to/spectrumcetb/why-do-i-love-webdev-3-19b7</link>
      <guid>https://dev.to/spectrumcetb/why-do-i-love-webdev-3-19b7</guid>
      <description>&lt;p&gt;Hello Everyone,&lt;/p&gt;

&lt;p&gt;This post is for all the beginners or the newbies, who decided to start their journey in the IT world and still unaware or confused about various fields. In my point of view, you should explore every field and choose which one is your "Soul-FieldofInterest".&lt;br&gt;
And for the ones who are already at a great level in WebDev, you might find this kind of a Nostalgic post. &lt;/p&gt;

&lt;p&gt;So here I am, discussing about my " &lt;strong&gt;Soul-FieldofInterest&lt;/strong&gt; " i.e. &lt;strong&gt;Web Development&lt;/strong&gt; . I will try not use any technical word and for sure no code, for better understanding. And this is all about my point of view, some of you might find it conflicting.&lt;/p&gt;
&lt;h1&gt;
  
  
  The Beginning
&lt;/h1&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fbaystreetex.com%2Fwp-content%2Fuploads%2F2018%2F02%2Fwebsites-81.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fbaystreetex.com%2Fwp-content%2Fuploads%2F2018%2F02%2Fwebsites-81.jpg" alt="Websites" width="800" height="400"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Everyday you wake up to notifications from social media like Instagram, from shopping sites like Amazon, &lt;em&gt;text from your crush&lt;/em&gt; (never happens I know) or (in this lock down) &lt;em&gt;from online classes&lt;/em&gt; . &lt;/p&gt;

&lt;p&gt;Ever wondered how all these things started? One day one person built a WEBSITE ( &lt;em&gt;No, not your crush. Trust me you deserve better&lt;/em&gt; :p ). One day a person sitting in his hostel room decided to build a website to connect to friends; One day a person decided to make a website to sell books and now they are Facebook and Amazon.&lt;/p&gt;

&lt;p&gt;Well, for me, all of these started with a startup idea, in my 1st year of my Btech. I was never curious about Web Development. But for that idea, I thought,"Let's give it a shot". And now here I am writing a post about my "Soul-FieldofInterest".&lt;/p&gt;

&lt;p&gt;You all might have encountered with those registration information forms for joining a social media or those survey forms you get online or (the least expected one) the Google docs for class tests. Let's use that. Let me explain how things are interesting with WebDev; not just after you become a web developer but also while you are learning to be a Web Developer.&lt;/p&gt;

&lt;p&gt;Note: The following things have alternatives. These are just to explain things.&lt;/p&gt;
&lt;h1&gt;
  
  
  HTML
&lt;/h1&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Frepository-images.githubusercontent.com%2F134285701%2F635de980-586d-11ea-9220-1a3211239c30" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Frepository-images.githubusercontent.com%2F134285701%2F635de980-586d-11ea-9220-1a3211239c30" alt="HTML" width="1280" height="640"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Some of you might get a question,"Using which language we can code HTML?".&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;"HyperText Markup Language is the 
standard markup language for documents
designed to be displayed in a web 
browser."- Wikipedia
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Ya, &lt;em&gt;bla bla bla&lt;/em&gt; , you will learn about those terms someday.&lt;br&gt;
So the answer to the previous question is "No, you don't code HTML. You build websites using HTML."&lt;/p&gt;

&lt;p&gt;Well, whatever you see in the internet is HTML( more like hundreds of lines of HTML). If we compare this with our body, then HTML is like our skeletal system.&lt;/p&gt;

&lt;p&gt;Let's go to the form.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Flz5ggu6j0jza6ducfrjk.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Flz5ggu6j0jza6ducfrjk.png" alt="HTML Form" width="410" height="259"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h6&gt;
  
  
  Source : Codepen
&lt;/h6&gt;

&lt;p&gt;See that's how your browser treats HTML file.&lt;br&gt;
You get fields to fillup and then submit.&lt;br&gt;
But that's it? Real world websites doesn't look like that? &lt;em&gt;It's uglier than me&lt;/em&gt; .&lt;/p&gt;
&lt;h1&gt;
  
  
  CSS
&lt;/h1&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fn73dn1bv72hrff0y81tw.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fn73dn1bv72hrff0y81tw.png" alt="CSS" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Here comes CSS into play. &lt;em&gt;He is the Genie for HTML aladdin.&lt;/em&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;"Cascading Style Sheets is a style 
sheet language used for describing 
the presentation of a document written 
in a markup language like HTML."- Wikipedia
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Again, &lt;em&gt;a bla bla bla&lt;/em&gt;&lt;br&gt;
In simple words, that makes our HTML file..&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fc0b6nltjh0b4kn9vqudl.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fc0b6nltjh0b4kn9vqudl.png" alt="CSS Form" width="797" height="562"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h6&gt;
  
  
  Source : Codepen
&lt;/h6&gt;

&lt;p&gt;...beautiful? or more than that?&lt;br&gt;
Well, it's like a &lt;em&gt;makeup kit.&lt;/em&gt; A kit with few lines of code.&lt;br&gt;
&lt;strong&gt;Trust me that's the same HTML code with CSS. This might look like a huge change and a tough thing but it is hardly 15-20 lines of code.&lt;/strong&gt; CSS is like muscles and organs for HTML.&lt;/p&gt;

&lt;p&gt;That's why couples say,"You are the CSS to my HTML".&lt;/p&gt;

&lt;p&gt;And now with CSS, HTML looks like me( &lt;em&gt;my mom's version of me&lt;/em&gt; )&lt;/p&gt;

&lt;p&gt;Cool, now we have the website. We are done here. That's all about Webdev. But, wait a minute, how will you know the data given in the form is valid? Someone might give an incorrect email address or some invalid phone number? How will you tackle that?&lt;/p&gt;
&lt;h1&gt;
  
  
  JAVASCRIPT
&lt;/h1&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmw1zy8cctp1hxb6xf4iz.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmw1zy8cctp1hxb6xf4iz.jpg" alt="Javascript" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;In the present world, &lt;em&gt;"look sells"&lt;/em&gt; .&lt;br&gt;
You and I as a customer will always look for something which is interactive.&lt;br&gt;
This is where Javascript comes into play.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;"JavaScript is most 
well-known as the scripting 
language for Web pages, many 
non-browser environments also 
use it". - MDN
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Javascript helps us to validate data, make the interface user interactive, build a web app, build servers etc. etc. All those interactive animations in the websites are a gift from JS. It is like a soul for your body. I believe that's the part you find webdev a bit rough but once it's done you will love it.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fssd04lkqylnpjs9d7g9d.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fssd04lkqylnpjs9d7g9d.gif" alt="JavaScript" width="600" height="337"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h6&gt;
  
  
  Source:Freefrontend
&lt;/h6&gt;

&lt;p&gt;This is where the Front-end work ends and Back-end work joins us.&lt;/p&gt;

&lt;h1&gt;
  
  
  Backend
&lt;/h1&gt;

&lt;h5&gt;
  
  
  (I chose PHP for the backend works, &lt;em&gt;you have options&lt;/em&gt; )
&lt;/h5&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Flh3.googleusercontent.com%2Fproxy%2F-P6uC0K_FRFdfUMbcGEZuuCGJN9FBkmObTou45a3v7Q4k0HsgzRlJxp9EpHGViTNJxHYGAVD9PCuWDquzPWA6e5VhOeHswIEwYMLh1DZPkYPS__Y3VZ6zrxi" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Flh3.googleusercontent.com%2Fproxy%2F-P6uC0K_FRFdfUMbcGEZuuCGJN9FBkmObTou45a3v7Q4k0HsgzRlJxp9EpHGViTNJxHYGAVD9PCuWDquzPWA6e5VhOeHswIEwYMLh1DZPkYPS__Y3VZ6zrxi" alt="Backend" width="800" height="400"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Using the form, you collected the data but you need to process it and store it somewhere. This is the use of Backend.&lt;br&gt;
It helps you reuse data collected. It helps you make a website dynamic(means to show different results under different situations). Ever wondered, do Facebook has different code for different users? There are millions of users and millions of code?&lt;br&gt;
No, It uses one code which changes according to the user.&lt;/p&gt;

&lt;p&gt;Backend includes a lot and lot of things like storing and using data from Database(like Mysql or Mongodb), creating services, dealing with server,"not just about making websites or web apps" and the list goes on. After this, you go deeper and explore frameworks, libraries etc. There is more but I won't like to extend this post.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;But at this point, I realised "WebDev it is. 
That's fun.". &amp;lt;3 :)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;You see the fun? where you learn things step by step. Every step makes you see and feel,that you have improved. Just like a mini-success before a huge success. &lt;em&gt;Adding a CSS to HTML feels like that childhood memory of try the Coloring book for the first time.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;As I said earlier, try every field. I tried most of them but I never found them so connected.&lt;/p&gt;

&lt;p&gt;Webdev is all about you and your creativity. It is all about how and what you think. This is the thing that can integrate with any other field. You can practice it in your free time and you won't feel bored. You can do freelancing and earn. That's the thing that don't need a degree. It lets you get into a huge community. And rest things are surprises or suspense things, which I don't wan't to spoil for you.&lt;/p&gt;

&lt;p&gt;What else do you need as a developer?&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fmemegenerator.net%2Fimg%2Finstances%2F81406368.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fmemegenerator.net%2Fimg%2Finstances%2F81406368.jpg" alt="WebDev" width="" height=""&gt;&lt;/a&gt;&lt;br&gt;
I hope you get an idea about WebDevelopement. If you are a WebDeveloper, I would love to know why do you love this so much?&lt;/p&gt;

</description>
      <category>beginners</category>
      <category>webdev</category>
      <category>html</category>
      <category>javascript</category>
    </item>
    <item>
      <title>Download a whole YouTube Playlist at one go</title>
      <dc:creator>Trideep Barik</dc:creator>
      <pubDate>Sun, 24 May 2020 08:49:16 +0000</pubDate>
      <link>https://dev.to/spectrumcetb/download-a-whole-youtube-playlist-at-one-go-3331</link>
      <guid>https://dev.to/spectrumcetb/download-a-whole-youtube-playlist-at-one-go-3331</guid>
      <description>&lt;p&gt;Note:This post is just for educational purpose to show the use of Webscraping. &lt;/p&gt;

&lt;p&gt;Have you ever been in a situation like, you are having you final exams in a week or so and you haven't attended a single lecture(I mean mindfully, of course)? Then you ask YouTube for help (happens in my case every time) and what you get is a huge(even larger than node_modules) playlist to watch and limited data/data-speed at your place.&lt;/p&gt;

&lt;p&gt;Or like, you wanted to learn a new skill/language/framework from YouTube and you get a good "playlist" but limited storage space in your phone.&lt;/p&gt;

&lt;p&gt;Now, there are websites/applications to download YouTube videos. &lt;br&gt;
OOPS, either they download one video at a time or if they download a complete playlist at once, they are paid ones. You can download the playlist videos one-by-one(until that's a huge one). Exams are important, you can pay for them and if it is about learning, let it take some more time, we have entire life?&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxy70mqh41fpgf7n3b6ou.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxy70mqh41fpgf7n3b6ou.jpg" alt="A Developer" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Wait a minute, you are a Python developer. Why pay for a service you can build with a few lines of code? &lt;br&gt;
This post will be about a simple project "YoPlaDo-YouTube Playlist Downloader" built using Python. We will be writing a program that takes the YouTube playlist link and web-scraps all the video links using Selenium and download the videos using YouTube-dl.&lt;/p&gt;
&lt;h1&gt;
  
  
  &lt;strong&gt;Web Scraping&lt;/strong&gt;
&lt;/h1&gt;

&lt;p&gt;Have you ever searched and downloaded images? Or have ever Ctrl+ &lt;strong&gt;C&lt;/strong&gt; and Ctrl+ &lt;strong&gt;V&lt;/strong&gt; (If you know you know)? Or submitted an assignment with the solutions you get online? Basically, this is what scraping is.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fhcn3kxs1r34i30tcuvvc.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fhcn3kxs1r34i30tcuvvc.jpeg" alt="Scraping" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Collecting data or to be more specific Extracting data from a website is Web-Scraping. Instead doing things manually, you can automate things. That's what a Web Scrapper does. You give it a list of things to extract and then it goes for shopping(scraping) from a website.&lt;br&gt;
For example, you need an image, it searches for img tags.&lt;br&gt;
These days Web-Scraping is being used in every fields staring from Digital Marketing to DataScience or AI.&lt;/p&gt;

&lt;p&gt;So, various languages provide various libraries,frameworks and tools to make a Web Scraper or a Web Crawler. Python uses Selenium ,Beautiful Soup, Scrapy and a few more.&lt;/p&gt;

&lt;p&gt;In this we will be creating a basic project with Selenium for a dynamic website.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fwww.octoparse.com%2Fmedia%2F7529%2Fweb-scraping-introduction.jpg%3Fwidth%3D666%26height%3D480" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fwww.octoparse.com%2Fmedia%2F7529%2Fweb-scraping-introduction.jpg%3Fwidth%3D666%26height%3D480" alt="A Developer" width="800" height="400"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h1&gt;
  
  
  &lt;strong&gt;YoPlaDo&lt;/strong&gt;
&lt;/h1&gt;
&lt;h3&gt;
  
  
  Selenium
&lt;/h3&gt;

&lt;p&gt;&lt;em&gt;"Selenium is a portable framework for testing web applications."&lt;/em&gt; - Wikipedia&lt;/p&gt;

&lt;p&gt;Primarily it is for automating web applications for testing purposes, but is certainly not limited to just that.&lt;br&gt;
Boring web-based administration tasks can (and should) also be automated as well.&lt;br&gt;
I will be explaining things in a simpler way. For detailed information, you can go through the &lt;a href="https://selenium-python.readthedocs.io/" rel="noopener noreferrer"&gt;Docs&lt;/a&gt;.&lt;/p&gt;
&lt;h3&gt;
  
  
  Youtube-dl
&lt;/h3&gt;

&lt;p&gt;&lt;em&gt;"Program to download videos from YouTube.com and other video sites"&lt;/em&gt; - Pypi&lt;/p&gt;

&lt;p&gt;For detailed information, you can go through the &lt;a href="https://github.com/ytdl-org/youtube-dl" rel="noopener noreferrer"&gt;Docs&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Favatars0.githubusercontent.com%2Fu%2F16595253%3Fs%3D400%26u%3D0594e00b9c22770c255c3c3bd86afb19ee43dcf5%26v%3D4" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Favatars0.githubusercontent.com%2Fu%2F16595253%3Fs%3D400%26u%3D0594e00b9c22770c255c3c3bd86afb19ee43dcf5%26v%3D4" alt="Coding Mode On" width="376" height="376"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;
  
  
  Let's get started,
&lt;/h3&gt;

&lt;p&gt;We will be extracting links from a playlist(like &lt;a href="https://www.youtube.com/playlist?list=" rel="noopener noreferrer"&gt;https://www.youtube.com/playlist?list=&lt;/a&gt;) and download each video automatically with the program. This is just a basic project overview for beginners. You can go for documentation and make improvements.&lt;/p&gt;
&lt;h4&gt;
  
  
  - Import the libraries
&lt;/h4&gt;

&lt;p&gt;&lt;strong&gt;If you want to follow-up with the post, you can make use of "&lt;a href="https://www.youtube.com/playlist?list=PLGzz7pyosmlJfx9ivigemSouoZR9uLT2-" rel="noopener noreferrer"&gt;https://www.youtube.com/playlist?list=PLGzz7pyosmlJfx9ivigemSouoZR9uLT2-&lt;/a&gt;" as the input link as this is used in the below example. It will be easier to understand. Also make sure the playlist you use, should have videos which are downloadable and without any deleted videos. This problem can be solved using Exception block but in order to keep this post simple for beginners, the block hasn't been added.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Before importing make sure , you have downloaded the required libraries. You can use,&lt;/p&gt;

&lt;p&gt;pip install selenium&lt;br&gt;
pip install youtube-dl&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;
&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="n"&gt;selenium&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;webdriver&lt;/span&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;time&lt;/span&gt; 
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;youtube_dl&lt;/span&gt; 
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;os&lt;/span&gt;

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h4&gt;
  
  
  - Initiate Chrome web-driver with the playlist URL
&lt;/h4&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;
&lt;span class="n"&gt;url&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;input&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Enter the Youtube Playlist URL : &lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;driver&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;webdriver&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;Chrome&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; 
&lt;span class="n"&gt;driver&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;url&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;time&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;sleep&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;5&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Used to initiate Chrome browser with input URL.&lt;br&gt;
&lt;em&gt;time.sleep(5)&lt;/em&gt; provides a time gap to start the driver. &lt;/p&gt;
&lt;h4&gt;
  
  
  - Scraping all the videos links from the Playlist
&lt;/h4&gt;


&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;
&lt;span class="n"&gt;playlist&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;[]&lt;/span&gt;
&lt;span class="n"&gt;videos&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;driver&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;find_elements_by_class_name&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;style-scope ytd-playlist-video-renderer&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;First we create an empty list "playlist" to store all the links to be extracted. &lt;/p&gt;

&lt;p&gt;Then webscraping comes into play.&lt;br&gt;
For simpler understanding, the line &lt;br&gt;
&lt;em&gt;driver.find_elements_by_class_name('style-scope ytd-playlist-video-renderer')&lt;/em&gt; is used to extract all the contents of source file that comes under specified class division.&lt;/p&gt;
&lt;h4&gt;
  
  
  - Scraping(part 2)
&lt;/h4&gt;


&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;
&lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;video&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="n"&gt;videos&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
    &lt;span class="n"&gt;link&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;video&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;find_element_by_xpath&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;.//*[@id=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;content&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;]/a&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="nf"&gt;get_attribute&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;href&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="n"&gt;end&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;link&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;find&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;&amp;amp;&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="n"&gt;link&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;link&lt;/span&gt;&lt;span class="p"&gt;[:&lt;/span&gt;&lt;span class="n"&gt;end&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
    &lt;span class="n"&gt;playlist&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;append&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;link&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="sh"&gt;"""&lt;/span&gt;&lt;span class="s"&gt;
For example, a playlist with 6 videos

Enter youtube playlist link : https://www.youtube.com/playlist?list=PLGzz7pyosmlJfx9ivigemSouoZR9uLT2-
[&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;https://www.youtube.com/watch?v=iyL9-EE3ngk&amp;amp;list=PLGzz7pyosmlJfx9ivigemSouoZR9uLT2-&amp;amp;index=1&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;, &lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;https://www.youtube.com/watch?v=G7E8YrOiYrQ&amp;amp;list=PLGzz7pyosmlJfx9ivigemSouoZR9uLT2-&amp;amp;index=2&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;, &lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;https://www.youtube.com/watch?v=79D4Y1cUK7I&amp;amp;list=PLGzz7pyosmlJfx9ivigemSouoZR9uLT2-&amp;amp;index=3&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;, &lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;https://www.youtube.com/watch?v=MUe0FPx8kSE&amp;amp;list=PLGzz7pyosmlJfx9ivigemSouoZR9uLT2-&amp;amp;index=4&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;, &lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;https://www.youtube.com/watch?v=UkpmjbHYV0Y&amp;amp;list=PLGzz7pyosmlJfx9ivigemSouoZR9uLT2-&amp;amp;index=5&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;, &lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;https://www.youtube.com/watch?v=WTOFLmB9ge0&amp;amp;list=PLGzz7pyosmlJfx9ivigemSouoZR9uLT2-&amp;amp;index=6&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;]


&lt;/span&gt;&lt;span class="sh"&gt;"""&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;A new term? Xpath?(superhero path?)&lt;/p&gt;

&lt;p&gt;"XPath is a technique in Selenium to navigate through the HTML structure of a page."&lt;br&gt;
For simpler understanding that is just a path to find specific tags.&lt;/p&gt;

&lt;p&gt;While the loop inspects all the elements in "videos" object&lt;/p&gt;

&lt;p&gt;&lt;em&gt;video.find_element_by_xpath('.//*[&lt;a class="mentioned-user" href="https://dev.to/id"&gt;@id&lt;/a&gt;="content"]/a').get_attribute("href")&lt;/em&gt;&lt;br&gt;
finds all the anchor tags or links present under the division whose id="content" and extract or scrape their href.&lt;/p&gt;

&lt;p&gt;The rest part of the code is for validation done to find only the link to the videos of the selected playlist by striping the playlist id and index number from the link.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;
&lt;span class="sh"&gt;"""&lt;/span&gt;&lt;span class="s"&gt;
After processing it looks like:


Enter youtube playlist link : https://www.youtube.com/playlist?list=PLGzz7pyosmlJfx9ivigemSouoZR9uLT2-
[&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;https://www.youtube.com/watch?v=iyL9-EE3ngk&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;, &lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;https://www.youtube.com/watch?v=G7E8YrOiYrQ&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;, &lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;https://www.youtube.com/watch?v=79D4Y1cUK7I&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;, &lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;https://www.youtube.com/watch?v=MUe0FPx8kSE&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;, &lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;https://www.youtube.com/watch?v=UkpmjbHYV0Y&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;, &lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;https://www.youtube.com/watch?v=WTOFLmB9ge0&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;]
&lt;/span&gt;&lt;span class="sh"&gt;"""&lt;/span&gt;

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Wondering why those specific classes?&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fwjl44dmnjkj50kxmnzj5.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fwjl44dmnjkj50kxmnzj5.png" alt="Alt Text" width="652" height="90"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Link of videos are under these sections.&lt;/p&gt;

&lt;h4&gt;
  
  
  - Downloading Videos
&lt;/h4&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;
&lt;span class="n"&gt;os&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;chdir&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;C:/Users/Trideep/Downloads&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; 

&lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;link&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="n"&gt;playlist&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
        &lt;span class="k"&gt;with&lt;/span&gt; &lt;span class="n"&gt;youtube_dl&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;YoutubeDL&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;ydl_opts&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="n"&gt;ydl&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
            &lt;span class="n"&gt;ydl&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;download&lt;/span&gt;&lt;span class="p"&gt;([&lt;/span&gt;&lt;span class="n"&gt;link&lt;/span&gt;&lt;span class="p"&gt;])&lt;/span&gt;
&lt;span class="n"&gt;driver&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;close&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;em&gt;os.chdir('C:/Users/Trideep/Downloads')&lt;/em&gt;&lt;br&gt;
Used to change the download location to the "Downloads".&lt;/p&gt;

&lt;p&gt;&lt;em&gt;with youtube_dl.YoutubeDL(ydl_opts) as ydl:&lt;br&gt;
      ydl.download([link])&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Here comes the Youtube-dl. Looping through the "playlist" list, each link is processed and downloaded using YoutubeDL.&lt;/p&gt;

&lt;p&gt;"ydl.download('Url to directory')" processes the link and downloads it to the mentioned directory.&lt;br&gt;
You can further add video specifications or type of video using other attributes of youtube-dl .&lt;/p&gt;

&lt;p&gt;&lt;em&gt;driver.close()&lt;/em&gt; used to close the driver.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fbgcgoyk1lffif1as34ap.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fbgcgoyk1lffif1as34ap.jpg" alt="Easy One" width="800" height="535"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;And with merely 30 lines of code, you saved a few dollars and gifted yourself a good project. &lt;br&gt;
Well, for proper execution you can add your own exception blocks and logic. I would suggest you to go through the documentation.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fvkihq9dbdjzvpwpxlwzq.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fvkihq9dbdjzvpwpxlwzq.jpg" alt="Just a meme" width="625" height="833"&gt;&lt;/a&gt;&lt;br&gt;
For complete code, you can visit:&lt;br&gt;&lt;br&gt;
&lt;a href="https://github.com/Dstri26/YoPlaDo-Youtube-Playlist-Downloader/" rel="noopener noreferrer"&gt;https://github.com/Dstri26/YoPlaDo-Youtube-Playlist-Downloader/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Happy Scraping! Happy Coding.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;That's my first technical blog. Do correct me if I am wrong. &amp;lt;3 &amp;lt;3 &amp;lt;3&lt;/strong&gt;
&lt;/h3&gt;

</description>
      <category>python</category>
      <category>project</category>
      <category>webscraping</category>
      <category>beginners</category>
    </item>
  </channel>
</rss>
