Nicely Pointed Mandibles

    playdl-music-extractor
    TypeScript icon, indicating that this package has built-in type declarations

    3.0.0 • Public • Published


    PlayDL Music Extractor

    About

    PlayDL Music Extractor is a Extractor/Scrapper and Helps Players to fetch data from play-dl or Custom Extractors , as Per reduces extra work and credentials.

    • Auto - UserAgents Method for Ratelimit Issue ( Fixed Youtube [ 429 ] Error )
    • Supports User-Agents and Youtube Cookies for Stream and Extractor Method
    • Object-oriented , means Value returned in a structure format or Class
    • Supports Youtube , Spotify , Reverbnation , SoundCloud , Facebook Urls and Even Youtube Search
    • Delay/Buffer Timeout is max 3 seconds on tracks and 7 sec for Playlists
    • Customisable Extractors
    • Performant
    • 100% coverage of play-dl and custom extractors

    Installation

    Node.js 16 or newer is required.

    npm install playdl-music-extractor
    

    Example : Fetched Data with Stream and Lyrics

      Track {
        trackId: 1,
        url: 'https://www.youtube.com/watch?v=kJQP7kiw5Fk',
        videoId: 'kJQP7kiw5Fk',
        title: 'Luis Fonsi - Despacito ft. Daddy Yankee',
        description: '“Despacito” disponible ya en todas las plataformas digitales: https://UMLE.lnk.to/DOoUzFp \n' +
          '“Imposible” disponible ya en todas las plataformas digitales: https://UMLE.lnk.to/IMPOSIBLEFp\n' +
          '“Calypso” disponible ya en todas las plataformas digitales: https://UMLE.lnk.to/CLYPSFp\n' +
          'Echame La Culpa disponible ya en todas las plataformas digitales: https://UMLE.lnk.to/ELCFp\n' +
          '\n' +
          '\n' +
          'Best of Luis Fonsi / Lo mejor Luis Fonsi: https://goo.gl/KLWPSa \n' +
          'Subscribe here: https://goo.gl/nkhcGc\n' +
          'Sigue a Luis Fonsi: \n' +
          'Official Site: http://www.luisfonsi.com/ \n' +
          'Facebook: https://www.facebook.com/luisfonsi/ \n' +
          'Twitter: https://twitter.com/LuisFonsi \n' +
          'Instagram: https://www.instagram.com/luisfonsi\n' +
          '\n' +
          '#LuisFonsi #Despacito #Imposible #Calypso #EchamelaCulpa #NadaEsImposible #NothingisImpossible #LF\n' +
          '\n' +
          '\n' +
          'Music video by Luis Fonsi performing Despacito. (C) 2017 Universal Music Latino',
        author: {
          name: 'LuisFonsiVEVO',
          url: 'https://www.youtube.com/channel/UCLp8RBhQHu9wSsq62j_Md6A'
        },
        extractorModel: { orignal: 'youtube', custom: 'play-dl' },
        duration: { ms: 282000, readable: '4 Minutes 42 Seconds' },
        thumbnail: {
          Id: 'kJQP7kiw5Fk',
          url: 'https://i.ytimg.com/vi/kJQP7kiw5Fk/hqdefault.jpg?sqp=-oaymwEbCKgBEF5IVfKriqkDDggBFQAAiEIYAXABwAEG&rs=AOn4CLCuffhiAPaneh-5dnyfyvY_mDwxhQ'
        },
        channel: {
          name: 'LuisFonsiVEVO',
          Id: 'UCLp8RBhQHu9wSsq62j_Md6A',
          url: 'https://www.youtube.com/channel/UCLp8RBhQHu9wSsq62j_Md6A'
        },
        isLive: false,
        ratings: { likes: 47759879, dislikes: 0 },
        stream: {
          buffer: [Readable],
          videoUrl: 'https://www.youtube.com/watch?v=kJQP7kiw5Fk',
          type: 'webm/opus',
          duration: [Object],
          videoId: 'kJQP7kiw5Fk'
        },
        lyrics: 'Come and move that in my direction\n' +
          "So thankful for that, it's such a blessin', yeah\n" +
          'Turn every situation into heaven, yeah\n' +
          'Oh-oh, you are\n' +
          'My sunrise on the darkest day\n' +
          "Got me feelin' some kind of way\n" +
          'Make me wanna savor every moment slowly\n' +
          'You fit me tailor-made, love how you put it on\n' +
          'Got the only key, know how to turn it on\n' +
          'The way you nibble on my ear, the only words I wanna hear\n' +
          'Baby, take it slow so we can last long\n' +
          '\n' +
          'Tú, tú eres el imán y yo soy el metal\n' +
          'Me voy acercando y voy armando el plan\n' +
          'Sólo con pensarlo se acelera el pulso\n' +
          'Ya, ya me está gustando más de lo normal\n' +
          'Todos mis sentidos van pidiendo más\n' +
          'Esto hay que tomarlo sin ningún apuro\n' +
          '\n' +
          'Despacito\n' +
          'Quiero respirar tu cuello despacito\n' +
          'Deja que te diga cosas al oído\n' +
          'Para que te acuerdes si no estás conmigo\n' +
          '\n' +
          'Despacito\n' +
          'Quiero desnudarte a besos despacito\n' +
          'Firmo en las paredes de tu laberinto\n' +
          'Y hacer de tu cuerpo todo un manuscrito\n' +
          '\n' +
          'Quiero ver bailar tu pelo, quiero ser tu ritmo\n' +
          'Que le enseñes a mi boca\n' +
          'Tus lugares favoritos\n' +
          'Déjame sobrepasar tus zonas de peligro\n' +
          'Hasta provocar tus gritos\n' +
          'Y que olvides tu apellido\n' +
          'Pasito a pasito, suave suavecito\n' +
          'Nos vamos pegando, poquito a poquito\n' +
          'Cuando tú me besas con esa destreza\n' +
          'Veo que eres malicia con delicadeza\n' +
          'Pasito a pasito, suave suavecito\n' +
          'Nos vamos pegando, poquito a poquito\n' +
          'Y es que esa belleza es un rompecabezas\n' +
          "Pero pa' montarlo aquí tengo la pieza\n" +
          '\n' +
          'Despacito\n' +
          'Quiero respirar tu cuello despacito\n' +
          'Deja que te diga cosas al oído\n' +
          'Para que te acuerdes si no estás conmigo\n' +
          '\n' +
          'Despacito\n' +
          'Quiero desnudarte a besos despacito\n' +
          'Firmo en las paredes de tu laberinto\n' +
          'Y hacer de tu cuerpo todo un manuscrito\n' +
          '\n' +
          'Pasito a pasito, suave suavecito\n' +
          'Nos vamos pegando, poquito a poquito\n' +
          'Que le enseñes a mi boca\n' +
          'Tus lugares favoritos\n' +
          'Pasito a pasito, suave suavecito\n' +
          'Nos vamos pegando, poquito a poquito\n' +
          'Hasta provocar tus gritos\n' +
          'Y que olvides tu apellido\n' +
          'Despacito'
      },

    Tips/Base Information :

    • Track Data is instance of Track Class and you can also retrieve Stream Data or Lyrics by getStream(...args) and getLyrics()
    • Stream will be Processed through Official "play-dl" Npm Package
    • Besides Official Use of play-dl Package , You can retrieve data from facebook,deezer,reverbnation and vimeo (soon)

    Methods :

    • new playdl.streamExtractor() | playdlQuick.streamExtractor()
    • new playdl.softExtractor() | playdlQuick.softExtractor()
    • new playdl.exec() | playdlQuick.exec()
    Option's Scheme :
    declare type secretTokens = {
      spotify: {
        client_id: string | number;
        client_secret: string | number;
        refresh_token: string | number;
        market: string | "US";
      };
      soundcloud: { client_id: string | number };
    };
    
    declare type fetchOptions = {
      tokens: secretTokens;
      fetchLimit: number;
      streamQuality: string;
      rawCookies: string;
      userAgents: string[];
    };
    
    declare type __scrapperOptions = {
      fetchLyrics: boolean | "true";
      eventReturn: { metadata: any };
      ratelimit: number;
      ignoreInternalError: boolean | "true";
      fetchOptions: fetchOptions;
      streamDownload: boolean | "false";
    };
    
    declare type extractorData = {
      playlist: boolean;
      tracks: Array<Track>;
    };

    Code Examples :

    Code Snippet :

    const { playdl } = require("playdl-music-extractor");
    
    const quickHandler = new playdl();
    
    quickHandler.on("tracks", (...eventData) => console.log(eventData));
    
    new Promise(async (resolve, reject) => {
      resolve(
        quickHandler.softExtractor("Despacito", {
          fetchOptions: { fetchLimit: 1 },
        })
      );
      resolve(
        quickHandler.streamExtractor(
          "https://open.spotify.com/track/1SOClUWhOi8vHZYMz3GluK?si=3c010c9df65a4552",
          {
            fetchOptions: { fetchLimit: 1 },
          },
          "tracks"
        )
      );
      resolve(
        quickHandler.exec("Despacito", {
          fetchOptions: { fetchLimit: 1 },
        })
      );
    });

    Some Minor Usages :

    Raw Cookies option :
    playdl.exec("Despacito", {
      fetchOptions: {
        rawCookies:
          "xxx-youtubeCookies-from-network-inspect-of-youtubeHomePage-xxx",
      },
    });
    User Agents option :
    playdl.exec("Despacito", {
      fetchOptions: {
        userAgents: [
          "Mozilla/5.0 (platform; rv:geckoversion) Gecko/geckotrail Firefox/firefoxversion",
        ],
      },
    });

    Supportable Websites Links :

    Links

    Contributing

    Before creating an issue, please ensure that it hasn't already been reported/suggested, and double-check the ReadMe.md

    Help

    If you don't understand something in the ReadMe.md , you are experiencing problems, or you just need a gentle nudge in the right direction, please don't hesitate to join our official Support Server.

    Install

    npm i playdl-music-extractor

    DownloadsWeekly Downloads

    153

    Version

    3.0.0

    License

    ISC

    Unpacked Size

    64 kB

    Total Files

    17

    Last publish

    Collaborators

    • sidislive