GithubHelp home page GithubHelp logo

benwilber / boltstream Goto Github PK

View Code? Open in Web Editor NEW
1.7K 1.7K 130.0 42.4 MB

Boltstream Live Video Streaming Website + Backend

License: Apache License 2.0

Makefile 1.52% Python 78.29% HTML 9.94% VCL 1.21% Shell 0.73% HCL 8.28% Jinja 0.03%

boltstream's People

Contributors

benwilber avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

boltstream's Issues

Sign-Up

Is there a sign-up? I can't "stream now" on demo or my local installation because it keeps going into a sign-in loop. The superuser admin account doesn't work (loop) and I can't create a regular user (missing sign-up).

Stream not working

Not sure if it's because I'm using the development server but after I create a live stream I get the following message when I try to view test the stream, "The media could not be loaded, either because the server or network failed or because the format is not supported."

I get the following error in the terminal:

Internal Server Error: /live/21ec6283-bf66-4763-a2ee-aaa295157552/preview.jpg
Traceback (most recent call last):
File "/boltstream/venv/lib/python3.8/site-packages/django/core/handlers/exception.py", line 47, in inner
response = get_response(request)
File "/boltstream/venv/lib/python3.8/site-packages/django/core/handlers/base.py", line 179, in _get_response
response = wrapped_callback(request, *callback_args, **callback_kwargs)
File "/boltstream/venv/lib/python3.8/site-packages/sentry_sdk/integrations/django/views.py", line 67, in sentry_wrapped_callback
return callback(request, *args, **kwargs)
TypeError: fake_view() got an unexpected keyword argument 'uuid'
Internal Server Error: /live/21ec6283-bf66-4763-a2ee-aaa295157552/preview.jpg
Traceback (most recent call last):
File "/boltstream/venv/lib/python3.8/site-packages/django/core/handlers/exception.py", line 47, in inner
response = get_response(request)
File "/boltstream/venv/lib/python3.8/site-packages/django/core/handlers/base.py", line 179, in _get_response
response = wrapped_callback(request, *callback_args, **callback_kwargs)
File "/boltstream/venv/lib/python3.8/site-packages/sentry_sdk/integrations/django/views.py", line 67, in sentry_wrapped_callback
return callback(request, *args, **kwargs)
TypeError: fake_view() got an unexpected keyword argument 'uuid'
[22/Dec/2021 06:57:15] "GET /live/21ec6283-bf66-4763-a2ee-aaa295157552/preview.jpg HTTP/1.1" 500 73221
[22/Dec/2021 06:57:15] "GET /live/21ec6283-bf66-4763-a2ee-aaa295157552/preview.jpg?width=400 HTTP/1.1" 500 73569
Internal Server Error: /live/21ec6283-bf66-4763-a2ee-aaa295157552/preview.mp4
Traceback (most recent call last):
File "/boltstream/venv/lib/python3.8/site-packages/django/core/handlers/exception.py", line 47, in inner
response = get_response(request)
File "/boltstream/venv/lib/python3.8/site-packages/django/core/handlers/base.py", line 179, in _get_response
response = wrapped_callback(request, *callback_args, **callback_kwargs)
File "/boltstream/venv/lib/python3.8/site-packages/sentry_sdk/integrations/django/views.py", line 67, in sentry_wrapped_callback
return callback(request, *args, **kwargs)
TypeError: fake_view() got an unexpected keyword argument 'uuid'
[22/Dec/2021 06:57:15] "GET /live/21ec6283-bf66-4763-a2ee-aaa295157552/preview.mp4 HTTP/1.1" 500 73290
Internal Server Error: /channel/21ec6283-bf66-4763-a2ee-aaa295157552
Traceback (most recent call last):
File "/boltstream/venv/lib/python3.8/site-packages/django/core/handlers/exception.py", line 47, in inner
response = get_response(request)
File "/boltstream/venv/lib/python3.8/site-packages/django/core/handlers/base.py", line 179, in _get_response
response = wrapped_callback(request, *callback_args, **callback_kwargs)
File "/boltstream/venv/lib/python3.8/site-packages/sentry_sdk/integrations/django/views.py", line 67, in sentry_wrapped_callback
return callback(request, *args, **kwargs)
TypeError: fake_view() got an unexpected keyword argument 'uuid'
[22/Dec/2021 06:57:15] "GET /channel/21ec6283-bf66-4763-a2ee-aaa295157552 HTTP/1.1" 500 72814

Exception happened during processing of request from ('127.0.0.1', 35144)
Traceback (most recent call last):
File "/usr/lib/python3.8/socketserver.py", line 683, in process_request_thread
self.finish_request(request, client_address)
File "/usr/lib/python3.8/socketserver.py", line 360, in finish_request
self.RequestHandlerClass(request, client_address, self)
File "/usr/lib/python3.8/socketserver.py", line 747, in init
self.handle()
File "/boltstream/venv/lib/python3.8/site-packages/django/core/servers/basehttp.py", line 174, in handle
self.handle_one_request()
File "/boltstream/venv/lib/python3.8/site-packages/django/core/servers/basehttp.py", line 182, in handle_one_request
self.raw_requestline = self.rfile.readline(65537)
File "/usr/lib/python3.8/socket.py", line 669, in readinto
return self._sock.recv_into(b)
ConnectionResetError: [Errno 104] Connection reset by peer

Internal Server Error: /live/21ec6283-bf66-4763-a2ee-aaa295157552/master.m3u8
Traceback (most recent call last):
File "/boltstream/venv/lib/python3.8/site-packages/django/core/handlers/exception.py", line 47, in inner
response = get_response(request)
File "/boltstream/venv/lib/python3.8/site-packages/django/core/handlers/base.py", line 179, in _get_response
response = wrapped_callback(request, *callback_args, **callback_kwargs)
File "/boltstream/venv/lib/python3.8/site-packages/sentry_sdk/integrations/django/views.py", line 67, in sentry_wrapped_callback
return callback(request, *args, **kwargs)
File "/boltstream/venv/lib/python3.8/site-packages/django/views/generic/base.py", line 70, in view
return self.dispatch(request, *args, **kwargs)
File "/boltstream/venv/lib/python3.8/site-packages/django/views/generic/base.py", line 98, in dispatch
return handler(request, *args, **kwargs)
File "/boltstream/venv/lib/python3.8/site-packages/django/utils/decorators.py", line 43, in _wrapper
return bound_method(*args, **kwargs)
File "/boltstream/venv/lib/python3.8/site-packages/django/views/decorators/cache.py", line 44, in _wrapped_view_func
response = view_func(request, *args, **kwargs)
File "/boltstream/boltstream/views.py", line 118, in get
manifest = make_master_manifest(request, stream)
File "/boltstream/boltstream/manifests.py", line 13, in make_master_manifest
if stream.info:
File "/boltstream/venv/lib/python3.8/site-packages/django/utils/functional.py", line 48, in get
res = instance.dict[self.name] = self.func(instance)
File "/boltstream/boltstream/models.py", line 233, in info
return fetch_info(self)
File "/boltstream/boltstream/control.py", line 28, in fetch_info
r = requests.get(url, headers=build_headers())
File "/boltstream/venv/lib/python3.8/site-packages/requests/api.py", line 76, in get
return request('get', url, params=params, **kwargs)
File "/boltstream/venv/lib/python3.8/site-packages/requests/api.py", line 61, in request
return session.request(method=method, url=url, **kwargs)
File "/boltstream/venv/lib/python3.8/site-packages/requests/sessions.py", line 528, in request
prep = self.prepare_request(req)
File "/boltstream/venv/lib/python3.8/site-packages/requests/sessions.py", line 456, in prepare_request
p.prepare(
File "/boltstream/venv/lib/python3.8/site-packages/requests/models.py", line 316, in prepare
self.prepare_url(url, params)
File "/boltstream/venv/lib/python3.8/site-packages/requests/models.py", line 393, in prepare_url
raise InvalidURL("Invalid URL %r: No host supplied" % url)
requests.exceptions.InvalidURL: Invalid URL 'http:///stream-info': No host supplied
[22/Dec/2021 06:57:15] "GET /live/21ec6283-bf66-4763-a2ee-aaa295157552/master.m3u8 HTTP/1.1" 500 142667

Any plans/thoughts for SuperChat-like feature?

Pretty self explanatory. I haven't seen any self-hosted streaming solutions that could take $-contributions from the audience. Do you know of any or have plans on payment gateway connections for boltstream?
Thanks! :)

Cannot create superuser

Not sure if I broke something, but i'm having issues registering users.

➜ boltstream git:(master) ✗ python3 manage.py createsuperuser
Username:
Error: This field cannot be blank.
Username: admin
CommandError: “admin” is not a valid UUID.
➜ boltstream git:(master) ✗

Is there something special missing?

Support for 360° video

I'd like to stream 360° video and set the HLS client to display it as 360° video also. Do you see a way to support it?

Multiple viewers in sync? 1-5s, 500ms? *10*ms?

This might be an question with an obvious answer, but over the whole pandemic I’ve been searching for video sharing services with one goal:

To get the viewers as in-sync as possible.

Vynchronize has been really decent, as has BigScreen on the Quest.
There have been dozens and dozens of potential solutions that have ended up in the nevermind pile just due to not getting this right (even Plex, which was stunning to me).

One of the bigger issues of course is how wildly latency can vary from server to client.
Linear video is uniquely suited to this since you can have a large buffer and just sync periodically (say, at key frames), but it also clearly requires specific thought and work around making that happen.

Functionality like:
-Watching video without echo while also being on a phone call together (or video chat on a separate device)
-Pausing the video to talk about it
-Rewinding to review (normally less than 60s)
-Rewinding to let someone catch up (they lost the video, or had something come up) (5-20 min normally, but could be arbitrarily anywhere in the video)

Are all things that come up across social usage scenarios like virtual classrooms, study sessions, movie watching, or even business presentations

Docker support?

Hi, this looks great! Do you have any plans to provide support for Docker?

Remake the installation instructions.

Hello ,
Would it be possible to redo the installation tutorial but with the new update. After installation it seems to have a lot of information that have changed or even missing.
I also can't run the docker version.

Thanks :D

Missing app.env file

One of the tasks for setup is to copy ansible/roles/app/files/app.env to /.env, however this file has been excluded in gitignore and isn't present in the repo.

I'm guessing this file interpolates the variables from the terraform config for the app (e.g. database host).

Can you please provide this file?

I tried to reverse engineer it, and ended up with the below but I might have missed stuff (in mine I've changed from MariaDB to Postgres):

SECRET_KEY=debug
DATABASE_URL=postgresql://{{ database_user }}:{{ database_password }}@{{ database_host }}:{{ database_port }}/{{ database_name }}
CACHE_URL={{ cache_url }}
BROKER_URL={{ broker_url }}
AWS_STORAGE_BUCKET_NAME={{ aws_storage_bucket_name }}
AWS_S3_CUSTOM_DOMAIN={{ aws_s3_custom_domain }}
AWS_S3_REGION_NAME={{ aws_s3_region_name }}
AWS_S3_ENDPOINT_URL={{ aws_s3_endpoint_url }}
RTMP_SECRET={{ rtmp_secret }}
RTMP_ENDPOINT={{ rtmp_endpoint }}
EXPIRE_VIEWER_SECONDS=60
SESSION_COOKIE_DOMAIN=domain
CSRF_TRUSTED_ORIGINS=domain
PORT=8083

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.