{"version":3,"file":"linkedin.mjs","sources":["../../../src/extractors/linkedin.ts"],"sourcesContent":["import axios from \"axios\";\nimport { parse } from \"node-html-parser\";\nimport { downloadVideo } from \"../downloader\";\n\nclass LinkedIn {\n  url: string;\n\n  constructor(url: string) {\n    this.url = url;\n  }\n\n  async #fetchHtml() {\n    const response = await axios.get(this.url);\n    const html = parse(response.data);\n    if (!html) {\n      throw new Error(\"Invalid Content\");\n    }\n    return html;\n  }\n\n  #getMetadata(url: string) {\n    const pattern = /\\/(?<ext>\\w*?)-(?<quality>\\w*?)-(?<rate>\\w*?)-/;\n    const matches = url.match(pattern);\n    return {\n      quality: matches?.groups?.quality,\n    };\n  }\n\n  async extractVideos() {\n    const html = await this.#fetchHtml();\n\n    const videoElements = html.querySelectorAll(\"video[data-sources]\");\n    const result: any = [];\n    videoElements.forEach((element) => {\n      const ve = element.getAttribute(\"data-sources\");\n      if (ve) {\n        const parsedVideos = JSON.parse(ve);\n        parsedVideos.forEach((videoObj: any) => {\n          result.push({\n            url: videoObj.src,\n            quality: this.#getMetadata(videoObj.src).quality,\n          });\n        });\n      }\n    });\n    return result;\n  }\n\n  static async download(videoUrl: string) {\n    await downloadVideo(videoUrl);\n  }\n}\n\nexport default LinkedIn;\n"],"names":[],"mappings":";;;;AAIA,MAAM,QAAS,CAAA;AAAA,EACb,GAAA,CAAA;AAAA,EAEA,YAAY,GAAa,EAAA;AACvB,IAAA,IAAA,CAAK,GAAM,GAAA,GAAA,CAAA;AAAA,GACb;AAAA,EAEA,MAAM,UAAa,GAAA;AACjB,IAAA,MAAM,QAAW,GAAA,MAAM,KAAM,CAAA,GAAA,CAAI,KAAK,GAAG,CAAA,CAAA;AACzC,IAAM,MAAA,IAAA,GAAO,KAAM,CAAA,QAAA,CAAS,IAAI,CAAA,CAAA;AAChC,IAAA,IAAI,CAAC,IAAM,EAAA;AACT,MAAM,MAAA,IAAI,MAAM,iBAAiB,CAAA,CAAA;AAAA,KACnC;AACA,IAAO,OAAA,IAAA,CAAA;AAAA,GACT;AAAA,EAEA,aAAa,GAAa,EAAA;AACxB,IAAA,MAAM,OAAU,GAAA,gDAAA,CAAA;AAChB,IAAM,MAAA,OAAA,GAAU,GAAI,CAAA,KAAA,CAAM,OAAO,CAAA,CAAA;AACjC,IAAO,OAAA;AAAA,MACL,OAAA,EAAS,SAAS,MAAQ,EAAA,OAAA;AAAA,KAC5B,CAAA;AAAA,GACF;AAAA,EAEA,MAAM,aAAgB,GAAA;AACpB,IAAM,MAAA,IAAA,GAAO,MAAM,IAAA,CAAK,UAAW,EAAA,CAAA;AAEnC,IAAM,MAAA,aAAA,GAAgB,IAAK,CAAA,gBAAA,CAAiB,qBAAqB,CAAA,CAAA;AACjE,IAAA,MAAM,SAAc,EAAC,CAAA;AACrB,IAAc,aAAA,CAAA,OAAA,CAAQ,CAAC,OAAY,KAAA;AACjC,MAAM,MAAA,EAAA,GAAK,OAAQ,CAAA,YAAA,CAAa,cAAc,CAAA,CAAA;AAC9C,MAAA,IAAI,EAAI,EAAA;AACN,QAAM,MAAA,YAAA,GAAe,IAAK,CAAA,KAAA,CAAM,EAAE,CAAA,CAAA;AAClC,QAAa,YAAA,CAAA,OAAA,CAAQ,CAAC,QAAkB,KAAA;AACtC,UAAA,MAAA,CAAO,IAAK,CAAA;AAAA,YACV,KAAK,QAAS,CAAA,GAAA;AAAA,YACd,OAAS,EAAA,IAAA,CAAK,YAAa,CAAA,QAAA,CAAS,GAAG,CAAE,CAAA,OAAA;AAAA,WAC1C,CAAA,CAAA;AAAA,SACF,CAAA,CAAA;AAAA,OACH;AAAA,KACD,CAAA,CAAA;AACD,IAAO,OAAA,MAAA,CAAA;AAAA,GACT;AAAA,EAEA,aAAa,SAAS,QAAkB,EAAA;AACtC,IAAA,MAAM,cAAc,QAAQ,CAAA,CAAA;AAAA,GAC9B;AACF;;;;"}