Skip to content

Getting destreamer working on M1/M2 macs + using all latest packages + sharepoint videos. Tested + working. #489

@hakt0-r

Description

@hakt0-r

I've just managed to get this working, and that too on my M1 mac running macOS Ventura 13.4.1.

I'll try to lay out what I've done to fix and hopefully can create a pull request and fix this too for all.

These are macOS specific instructions, though you can ignore macOS bits and make it work for other OS's.

  1. brew install chromium
  2. To avoid running into "chromium.app is damaged error" (see Can't install Chromium without --no-quarantine Homebrew/homebrew-cask#112986 (comment))
    Run these two commands. (it'll set the right flags for macOS SIP/watchdog/whatever)

xattr -cr /opt/homebrew/bin/chromium
xattr -cr /Applications/Chromium.app

  1. git clone --branch sharepoint https://github.com/snobu/destreamer.git
  2. cd into that directory
  3. edit the package.json file to change
    change "@types/puppeteer" : "5.5.0",
    to "puppeteer" : "^19.11.1",

change "puppeteer" : "5.5.0",
to "puppeteer" : "^19.11.1",

  1. edit the tsconfig.json file to add a line after "sourceMap"...
    "noImplicitAny": false,

  2. now run npm install

  3. (going for gold!) We'll also update all the node packages and their versions. Run npm update --save

  4. at this stage you can now try and run npm run build
    You'll get a few errors!
    First kind...
    few of these... src/LoginModules.ts:14:20 - error TS2503: Cannot find namespace 'puppeteer'.
    and few of these... src/TokenCache.ts:60:20 - error TS2503: Cannot find namespace 'puppeteer'.
    to Fix this, just edit these two files and change
    this line => import puppeteer from 'puppeteer';
    to this => import * as puppeteer from 'puppeteer';

  5. running npm run build again, gives you one more error...
    src/TokenCache.ts:99:24 - error TS2339: Property 'waitFor' does not exist on type 'Page'.
    edit src/TokenCache.ts file line 99 and change waitFor to waitForTimeout (see: [Bug]: TypeError: page.waitFor is not a function when using pupeteer puppeteer/puppeteer#9762)

  6. Finally you are ready to build. npm run build will work.

I've successfully tested today downloading two recordings. 😄

Originally posted by @hakt0-r in #487 (comment)

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions