GithubHelp home page GithubHelp logo

thedrhax / twitch-utils Goto Github PK

View Code? Open in Web Editor NEW
21.0 5.0 3.0 153 KB

Record, concatenate and synchronize Twitch live streams and remove background music

License: GNU General Public License v3.0

Python 100.00%
twitch concatenation video-synchronization streamlink praat ffmpeg spleeter voice-separation stream-recording

twitch-utils's People

Contributors

thedrhax avatar

Stargazers

 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

twitch-utils's Issues

[feature request] command to make a clip

Sometime channels disable clips. I thought it would be interesting while you record a stream, to have a command to make a clip.

Also, a bug if stream is live and I start recording, but that there's no VOD, program won't start recording.

โžœ  ~ twitch_utils record --oauth=add_oauth pommed0r12345 -j 2
Traceback (most recent call last):
  File "/usr/local/bin/twitch_utils", line 8, in <module>
    sys.exit(main())
  File "/usr/local/lib/python3.7/dist-packages/twitch_utils/__init__.py", line 29, in main
    record_main(argv)
  File "/usr/local/lib/python3.7/dist-packages/twitch_utils/record.py", line 292, in main
    v = api.find_vod(channel)
  File "/usr/local/lib/python3.7/dist-packages/twitch_utils/twitch.py", line 46, in find_vod
    return stream['archiveVideo']['id']
TypeError: 'NoneType' object is not subscriptable

[record] Custom Client-ID and integrated OAuth

Instead of using Twitch's OAuth token, we can create our own. It would be enough for detecting stream and live VOD, but streamlink would still require first-party token, that can be configured separately.

  • Add custom Client-ID support to allow users to specify their own Client-ID - OAuth token pairs;
  • Create Client-ID for this script;
  • Implement OAuth implicit code flow;
  • Add global configuration file and store token in it;

TypeError: argument of type 'NoneType' is not iterable

C:\Users\Administrator\Desktop\New folder (6)>twitch_utils record dodgeballcanada -j 2 -b 2M
Checking if channel dodgeballcanada is active...
Stream is online! Found the ID of live VOD: 534927868
Starting to record the live stream...
Downloading https://twitch.tv/dodgeballcanada into 534927868.end.ts
Process Process-1:
Traceback (most recent call last):
File "e:\users\administrator\appdata\local\programs\python\python36\lib\multiprocessing\process.py", line 258, in _bootstrap
self.run()
File "e:\users\administrator\appdata\local\programs\python\python36\lib\multiprocessing\process.py", line 93, in run
self._target(*self._args, **self._kwargs)
File "e:\users\administrator\appdata\local\programs\python\python36\lib\site-packages\twitch_utils\record.py", line 57, in download
sl_proc = Popen(sl_cmd, **sl_kwargs)
File "e:\users\administrator\appdata\local\programs\python\python36\lib\subprocess.py", line 729, in init
restore_signals, start_new_session)
File "e:\users\administrator\appdata\local\programs\python\python36\lib\subprocess.py", line 991, in _execute_child
args = list2cmdline(args)
File "e:\users\administrator\appdata\local\programs\python\python36\lib\subprocess.py", line 481, in list2cmdline
needquote = (" " in arg) or ("\t" in arg) or not arg
TypeError: argument of type 'NoneType' is not iterable

[record] Custom output file format

User should be able to choose output container for concatenated stream. It is already implemented in concat, so we just need to pass output file name to it.

[record] Check start.ts before finishing end.ts

It is possible to run concat on start.ts and end.ts while end.ts is still being downloaded. Concat should successfully build a complete timeline of the stream. An error would mean that start.ts is too short and should be downloaded again.

[pip] Split package into multiple extras

Some dependencies such as praat-parselmouth or spleeter are heavy, and are only required by one script from the whole package. Users must be able to install this package partially by using extras_require from setuptools.

Package name Dependencies
tdh-twitch-utils requests, python-dateutil, docopt
tdh-twitch-utils[record] streamlink
tdh-twitch-utils[offset] praat-parselmouth
tdh-twitch-utils[mute] tensorflow, spleeter
tdh-twitch-utils[all] all of the above

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.