GithubHelp home page GithubHelp logo

Comments (8)

trahay avatar trahay commented on May 29, 2024

It is probably due to the authentification (which is not supported in bbb-downloader).

It may be possible to send credentials to the web server (cf https://docs.python.org/3.1/howto/urllib2.html#id6 ).

If you can experiment, try downloading https://manager.didaktik-bigblue.rwu.de/presentation/fa8c2d3e6b6816ea4fa13adcc3f0f4fed44469c5-1587016732599/metadata.xml using your credential.
If you succeed, we can probably adapt the bbb-downloader to your case.

from bbb-downloader.

me7pako avatar me7pako commented on May 29, 2024

So all I got after accessing the URL you provided is the following text:
fa8c2d3e6b6816ea4fa13adcc3f0f4fed44469c5-1587016732599 published true 1587016732599 1587021732966 21 Greenlight manager.didaktik-bigblue.rwu.de 2.5 false false fb9b8dc94c4a1754f7e6774a284d96788de46f06 Metrology 2 presentation https://s6.didaktik-bigblue.rwu.de/playback/presentation/2.0/playback.html?meetingId=fa8c2d3e6b6816ea4fa13adcc3f0f4fed44469c5-1587016732599 7389622 4467086 https://s6.didaktik-bigblue.rwu.de/presentation/fa8c2d3e6b6816ea4fa13adcc3f0f4fed44469c5-1587016732599/presentation/d2d9a672040fbde2a47a10bf6c37b6a4b5ae187f-1587016732724/thumbnails/thumb-1.png https://s6.didaktik-bigblue.rwu.de/presentation/fa8c2d3e6b6816ea4fa13adcc3f0f4fed44469c5-1587016732599/presentation/d2d9a672040fbde2a47a10bf6c37b6a4b5ae187f-1587016732724/thumbnails/thumb-2.png 113986951 82459349
I do not think it is a successful try right?

from bbb-downloader.

trahay avatar trahay commented on May 29, 2024

Sorry, my instructions were not clear :)

We need to find a way to enter the credentials using python.

Could you save the following source code as download.py, change the login and password values to your credentials, and run the script (python download.py):

#!/usr/bin/python

import urllib
from urllib.request import Request, urlopen

full_url="https://manager.didaktik-bigblue.rwu.de/presentation/fa8c2d3e6b6816ea4fa13adcc3f0f4fed44469c5-1587016732599/metadata.xml"
top_level_url="https://manager.didaktik-bigblue.rwu.de/"

username="login"
password="password"


# create a password manager
password_mgr = urllib.request.HTTPPasswordMgrWithDefaultRealm()

# Add the username and password.
# If we knew the realm, we could use it instead of None.
password_mgr.add_password(None, top_level_url, username, password)

handler = urllib.request.HTTPBasicAuthHandler(password_mgr)

# create "opener" (OpenerDirector instance)
opener = urllib.request.build_opener(handler)

# use the opener to fetch a URL
data=opener.open(full_url).read().decode()
print(data);

If this work, the script should print something that looks like this:

<?xml version='1.0' encoding='UTF-8'?>
<recording>
  <id>fb8a9cb664e003d61d06e6c7f71196fb9b2c0922-1588666735451</id>
  <state>published</state>
  <published>true</published>
  <start_time>1588666735451</start_time>
  <end_time>1588666797858</end_time>
  <participants>1</participants>
  <raw_size>4727865</raw_size>
  <meeting 
  id="fb8a9cb664e003d61d06e6c7f71196fb9b2c0922-1588666735451" externalId="7b69def6d0ac672e335d004e4216596a622b90f4" name="Salle d’Accueil" breakout="false">
</meeting>
  <meta>
    <name> Test1</name>
    <bbb-origin-version>2</bbb-origin-version>
    <meetingName>Salle d’Accueil</meetingName>
    <meetingId>7b69def6d0ac672e335d004e4216596a622b90f4</meetingId>
    <gl-listed>false</gl-listed>
    <bbb-origin>Greenlight</bbb-origin>
    <isBreakout>false</isBreakout>
    <bbb-origin-server-name>webconf.imt.fr</bbb-origin-server-name>
  </meta>
  <playback>
    <format>presentation</format>
    <link>
      https://bbb3.imtbs-tsp.eu/playback/presentation/2.0/playback.html?meetingId=fb8a9cb664e003d61d06e6c7f71196fb9b2c0922-1588666735451
    </link>
    <processing_time>25011</processing_time>
    <duration>21566</duration>
    <size>1593678</size>
    <extensions>
      <preview>
        <images>
          <image width="176" height="136" alt="">
            https://bbb3.imtbs-tsp.eu/presentation/fb8a9cb664e003d61d06e6c7f71196fb9b2c0922-1588666735451/presentation/d2d9a672040fbde2a47a10bf6c37b6a4b5ae187f-1588666735465/thumbnails/thumb-1.png
          </image>
          <image width="176" height="136" alt="">
            https://bbb3.imtbs-tsp.eu/presentation/fb8a9cb664e003d61d06e6c7f71196fb9b2c0922-1588666735451/presentation/d2d9a672040fbde2a47a10bf6c37b6a4b5ae187f-1588666735465/thumbnails/thumb-2.png
          </image>
          <image width="176" height="136" alt="">
            https://bbb3.imtbs-tsp.eu/presentation/fb8a9cb664e003d61d06e6c7f71196fb9b2c0922-1588666735451/presentation/d2d9a672040fbde2a47a10bf6c37b6a4b5ae187f-1588666735465/thumbnails/thumb-3.png
          </image>
        </images>
      </preview>
    </extensions>
  </playback>

from bbb-downloader.

me7pako avatar me7pako commented on May 29, 2024

Hello there and thank you so much for your effort and dedication to help. Well I did what you suggested and the script returned the following:

<title>BigBlueButton an der RWU</title>

Open Source Web-Konferenzsystem der Hochschule Ravensburg Weingarten

Die angeforderte Aufnahme ist passwortgeschützt.
Bitte loggen Sie sich mit ihren LSF-Daten ein.
(nicht mit einer E-Mail-Adresse)

                <p>
                    <form class="ui form" action="./auth" method="post">
                        <div class="field">
                            <input type="text" placeholder="RWU-Username" name="username">
                        </div>
                        <div class="field">
                            <input type="password" placeholder="RWU-Passwort" name="password">
                        </div>
                        <input type="hidden" name="98084bd6127790b2a2f87614e35c788e040b49a131fad846d74b7db7cf29b09916454d29ef2e8de74dfa604c78ed888c3cb83557274d60a0649dea17a4091385fb51e82b709b674702e12461239572a9b88c4aea51d481e6da36afb6678da92c6c5875ad46d5f36b90f33b90fc59b1052eb497504efe0464306ee53ce951fc9f" value="b947cc7d61a2abb86693bff32b807df9ac9f52095ab7593aa4fb977e01ea0c24665670aa2220a7be52992319242b330a25fa43621c39f9f78b114ec601c450c3e54f1097cee78519ae978aa4e6f3e99bd8e700947bbe678a49e58a4360409fc7594c07f9215d3a9e6c79898838f57d05b70c76f20091975d20e6de851df3f1a3">
                        <button class="ui button primary" type="submit">Einloggen</button>
                    </form>
                </p>
            </div>
            BigBlueButton und das BigBlueButton Logo sind eingetragene Warenzeichen der <a href="http://bigbluebutton.org/" target="_blank">BigBlueButton Inc.</a>
        </div>
    </div>
</body>

the part: "angeforderte Aufnahme ist passwortgeschützt.
Bitte loggen Sie sich mit ihren LSF-Daten ein.
(nicht mit einer E-Mail-Adresse)" means: the requested recording is password protected, please log in with your LSF-data (not with an email address). But the thing is, I logged with the correct data that I use to access the recording, I have not typed my email or anything of the sort.

from bbb-downloader.

me7pako avatar me7pako commented on May 29, 2024

Sorry, the first part where the logo is normally is only an html script that is rendered automatically within the comment as to look like it would on a web page.

from bbb-downloader.

trahay avatar trahay commented on May 29, 2024

It looks like making bbb-downloader manage the authentification will not be straightforward :(

A possibility for downloading the video could be to make it public in BBB: https://docs.bigbluebutton.org/greenlight/gl-overview.html#viewing-recordings

If you are the owner of the recording, you can change its visibility to public, which should remove the need for authentification.

from bbb-downloader.

me7pako avatar me7pako commented on May 29, 2024

Unfortunately I am not. But thanks for the huge help nevertheless.
And if you stumble upon any kind of hint for a solution, please do not hesitate to enlighten me.
Thanks again.

from bbb-downloader.

yvan-leroux-engineer avatar yvan-leroux-engineer commented on May 29, 2024

Hello everyone,

This is my very first message using github so I'll try to explain as best I can.
I had the same problem as @me7pako while using the capture-full-replay bash, it could download both webcam and deskshare without any issues, however when it goes through the selenium-play-bbb-recording.js script it printed out an error saying that it did not find the play button, so I presumed it failed due to authentification problem.

I never programmed javascript, but I played a lot with selenium using python, and I had a little work arround on this selenium-play-bbb-recording.js script playing on the automated redirection between the bbb's meeting link and the authentification server of the university, here is my solution :

/*
 * Drives Selenium to record the replay
 * args :
 *  - URL
 *  - seconds to record
 *  - port to connect to
 */

/* Capture a recording playback with Selenium for a certain duration */
var myArgs = process.argv.slice(2);
/*console.log('myArgs: ', myArgs);*/

var webdriver = require('selenium-webdriver'),
    By = webdriver.By,
    until = webdriver.until;

var driver = new webdriver.Builder()
/*    .forBrowser('chrome') */
    .forBrowser('firefox')
    .usingServer('http://localhost:'+ myArgs[2] + '/wd/hub')
    .build();

/* Here goes the link of the bbb meeting, so I want to wait a few seconds to let the redirection do his work */
driver.get(myArgs[0]);
driver.sleep(1000*5);

/*And then I gave some information to selenium to find the login and password box using findElement(By.id("...")) and sending my credentials using the sendKeys("...")*/
driver.findElement(By.id('Login_Box_ID')).sendKeys("Login");
driver.findElement(By.id('Password_Box_ID')).sendKeys("password");

/*And logging in by clicking on the log in button*/
driver.findElement(By.xpath('//button[@class="Button_Class"]')).click();

/* wait a bit to let the redirection to the bbb's meeting link happening and before maximizing the window full-screen */
driver.sleep(1000 * 5);
driver.manage().window().maximize();

/* Cannot put it in full-screen with F11 in marionette mode */
/*driver.sleep(1000 * 5);*/
/*driver.findElement(By.tagName("body")).sendKeys(webdriver.Key.F11);*/

/* Start playback */
driver.sleep(1000 * 4);
driver.findElement(By.className('acorn-play-button')).click();

/* Stop after the required number of seconds */
driver.sleep(1000 * myArgs[1]);

driver.quit();

Unfortunately this solution isn't "scalable" because it relies on the webpage's design, but once defined it works !
Hope it helps, a big thanks for the team behind for those nice scripts !

from bbb-downloader.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.