Code Monkey home page Code Monkey logo

ass_tag_parser's Introduction

logo

Simple extensible ASS subtitle editor for Linux

Features

  • Python - easily extend it however you want
  • Video preview
  • Audio preview (spectrogram)
  • Video band for quick assessment of scene boundaries
  • Audio and video are synced at all times
  • Spectrogram shows where subs start and end
  • Slow playback support (with audio pitch correction)
  • I can sub an entire episode without ever having to touch the mouse
  • Mouse users are not excluded and can click their way to all the commands
  • Robust plugin API (everything GUI is capable of can be done through the API)
  • Simple architecture (Commands โ†” API โ†” GUI)
  • Separate control for persistent inline comments (useful for translating)
  • Newlines support in the editor
  • Everything is aligned to video frames
  • Style editor with realistic preview
  • Vim mode in the text editor (off by default, requires neovim 0.4+)
  • No bloat

Screenshot

Installation

  • Install system dependencies
  • Clone the repository: git clone https://github.com/bubblesub/bubblesub
  • Enter its directory: cd bubblesub
  • Install bubblesub: pip install --user .
  • Run bubblesub: python3 -m bubblesub or simply bubblesub

If you want to simplify bubblesub installation, look at our Dockerfile. You will find what dependencies are needed, how to install them and how to run our tests.

Documentation

Default hotkeys and commands

Please see this file.

API

For the API documentation, for now please consult the docstrings in the bubblesub.api module. In the future, if bubblesub experiences a boost in popularity, this might be improved.

Configuration and plugins

  • $XDG_CONFIG_HOME/bubblesub/: contains user configuration
    • options.yaml: general options
    • hotkeys.conf: configurable user hotkeys
    • menu.conf: configurable additional user menus
  • $XDG_CONFIG_HOME/bubblesub/scripts: contains user plugins (see example plugin)
  • $XDG_CACHE_HOME/bubblesub/: used to cache time codes and such

Questions

  1. I want to report a bug.

    Please use GitHub issues.

  2. I want a feature.

    Chances are I'm too busy to work on features I don't personally need, so pull requests are strongly encouraged.

  3. Why not aegisub?

    Because it doesn't cover my needs, it's too convoluted and its development is too slow.

  4. Windows builds?

    You can find a Windows build for bubblesub here.
    I don't maintain it, so please contact the current developer if you find some issue.

  5. Versioning? PyPI?

    I don't say no, maybe in the future, if the project gets more popular. For now, git master is the way to go.

Contact

Issue tracker: GitHub issues

Acknowledgments

I'd like to thank all contributors for the help on this project.
The lovely logo was donated by fri. Thanks :)

ass_tag_parser's People

Contributors

luni-4 avatar rr- avatar

Stargazers

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

Watchers

 avatar  avatar  avatar  avatar

ass_tag_parser's Issues

Don't raise an exception, simply have a class for unknow tag

Currently, ass_tag_parser can't parse VSFilterMod tag which is totally ok, because they have they are useless.

But, it would be better if it could not raise an exception. It should simply have a class for unknowtag.

Here is the code I have:

result = parse_ass(
    r"{\fnJester\fsc20}test"
)
print(result)

What it currently does:
ass_tag_parser.errors.BadAssTagArgument: syntax error at pos 16: \fs requires an integer

What it could do:
[AssTagListOpening(), AssTagFontName(name='Jester'), AssUnknowTag(text=fsc20), AssTagListEnding(), AssText(text='test')]

\fs should accept float number

Currently, if we do parse_ass(r"{\fs146.38}example"), it will print: ass_tag_parser.errors.BadAssTagArgument: syntax error at pos 10: \fs requires an integer

\fs can handle float number, so we should not be limited to integer.

This package cannot be installed on non-English windows systems

PS C:\xxx> pip install ass-tag-parser
Collecting ass-tag-parser
  Using cached https://xxx/ass_tag_parser-2.3.tar.gz (16 kB)
    ERROR: Command errored out with exit status 1:
     command: 'c:\python38\python.exe' -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'C:\\Users\\xxx\\AppData\\Local\\Temp\\pip-install-1s17sz2y\\ass-tag-parser\\setup.py'"'"'; __file__='"'"'C:\\Users\\xxx\\AppData\\Local\\Temp\\pip-install-1s17sz2y\\ass-tag-parser\\setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' egg_info --egg-base 'C:\Users\xxx\AppData\Local\Temp\pip-pip-egg-info-7kr7ks__'
         cwd: C:\Users\xxx\AppData\Local\Temp\pip-install-1s17sz2y\ass-tag-parser\
    Complete output (7 lines):
    Traceback (most recent call last):
      File "<string>", line 1, in <module>
      File "C:\Users\xxx\AppData\Local\Temp\pip-install-1s17sz2y\ass-tag-parser\setup.py", line 11, in <module>
        long_description=(Path(__file__).parent / "README.md").read_text(),
      File "c:\python38\lib\pathlib.py", line 1236, in read_text
        return f.read()
    UnicodeDecodeError: 'gbk' codec can't decode byte 0xa2 in position 601: illegal multibyte sequence
    ----------------------------------------
ERROR: Command errored out with exit status 1: python setup.py egg_info Check the logs for full command output.

There are different default encodings in these operating systems (for open etc.)

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.