otsaloma / gaupol Goto Github PK
View Code? Open in Web Editor NEWEditor for text-based subtitle files
Home Page: https://otsaloma.io/gaupol/
License: GNU General Public License v3.0
Editor for text-based subtitle files
Home Page: https://otsaloma.io/gaupol/
License: GNU General Public License v3.0
Whenever I load a video, the first thing I do is press the pause button. Please disable autoplay or add an option to disable it through the preferences. Thank you.
Instead of
Gtk.Label.set_markup
...
PocketSphinx has been ported to GStreamer 1.0.
http://cmusphinx.sourceforge.net/wiki/gstreamer
Previous discussion: https://bugzilla.gnome.org/show_bug.cgi?id=757743
Giving a try to the current gaupol-master in a live session of Fedora 24 Workstation:
File: /home/liveuser/Downloads/gaupol-master/gaupol/agents/menu.py
Line: 96
In: _on_open_recent_translation_file_activateself.open_translation(action.gaupol_path)
File: /home/liveuser/Downloads/gaupol-master/aeidon/deco.py
Line: 218
In: inner_wrapperreturn function(_args, *_kwargs)
File: /home/liveuser/Downloads/gaupol-master/gaupol/agents/open.py
Line: 286
In: open_translationpage = self._open_file(path, encodings, aeidon.documents.TRAN)
File: /home/liveuser/Downloads/gaupol-master/gaupol/agents/open.py
Line: 250
In: _open_filen = self._try_open_file(page, doc, path, encoding)
File: /home/liveuser/Downloads/gaupol-master/gaupol/agents/open.py
Line: 392
In: _try_open_filereturn page.project.open(doc, path, encoding, **kwargs)
AttributeError: 'NoneType' object has no attribute 'project'
Environment
Platform: Linux-4.5.5-300.fc24.i686-i686-with-fedora-24-Twenty_Four
Locale: en_US.utf_8Versions
aeidon: 0.91
chardet: 2.2.1
enchant: 1.6.6
gaupol: 0.91
gstreamer: 1.8.1.0
gtk+: 3.20.6
pygobject: 3.20.1
python: 3.5.1
For cases where you have video and a transcript, but no timing.
aeneas automatically generates a synchronization map between a list of text fragments and an audio file containing the narration of the text. In computer science this task is known as (automatically computing a) forced alignment.
https://www.readbeyond.it/aeneas/
I can't tell if it would work well enough to be useful, but it looks worth testing. Testing can probably be done using aeneas directly from the command line. Any help testing and reports of results with real data appreciated.
Hi, when I try to load a video I get the error "Failed to initialize playblack: Requiring namespace 'Gst' version '0.10', but '1.0' is already loaded".
I am not an expert but from the message I think Gaupol requires an earlier version of gstreamer. Would you be able to update the dependency or..? How should I proceed?
WP
With Gaupol 0.92:
While the application is trying to undo the action done (it takes 1-2 seconds here), the second undo request seems be registered too, triggering the following error:
Traceback
File: /usr/lib/python3.5/site-packages/gaupol/agents/edit.py
Line: 310
In: _on_undo_action_activateself.undo()
File: /usr/lib/python3.5/site-packages/gaupol/agents/edit.py
Line: 395
In: undopage.project.undo(count)
File: /usr/lib/python3.5/site-packages/aeidon/agents/register.py
Line: 199
In: undoreturn self._revert_multiple(count, aeidon.registers.UNDO)
File: /usr/lib/python3.5/site-packages/aeidon/agents/register.py
Line: 167
In: _revert_multipleself._do_description = stack[0].description
IndexError: list index out of range
Environment
Platform: Linux-4.7.6-200.fc24.i686+PAE-i686-with-fedora-24-Twenty_Four
Locale: es_ES.utf_8Versions
aeidon: 0.92
chardet: 2.2.1
enchant: 1.6.6
gaupol: 0.92
gstreamer: 1.8.3.0
gtk+: 3.20.9
pygobject: 3.20.1
python: 3.5.1
Hi,
Giving a try to the current gaupol from git in a live session of Fedora 24 Workstation:
File: /home/liveuser/Descargas/gaupol-0.91/gaupol/agents/preview.py
Line: 63
In: _on_preview_activateself.preview(page, position, doc)
File: /home/liveuser/Descargas/gaupol-0.91/gaupol/agents/preview.py
Line: 73
In: previewposition, doc, command, offset, encoding, temp)
File: /home/liveuser/Descargas/gaupol-0.91/aeidon/agents/preview.py
Line: 123
In: previewVIDEOFILE=aeidon.util.shell_quote(self.video_path))
File: /home/liveuser/Descargas/gaupol-0.91/aeidon/util.py
Line: 407
In: shell_quotepath = path.replace("", "\")
AttributeError: 'NoneType' object has no attribute 'replace'
Environment
Platform: Linux-4.5.5-300.fc24.i686-i686-with-fedora-24-Twenty_Four
Locale: es_ES.utf_8Versions
aeidon: 0.91
chardet: 2.2.1
enchant: 1.6.6
gaupol: 0.91
gstreamer: 1.8.1.0
gtk+: 3.20.6
pygobject: 3.20.1
python: 3.5.1
The Development page still points to Bugzilla for bugs and patches.
From @Blogodorio: This software indicates an error that I don't know what about... It says that I must send a message about some bug, but I could not find out how to fix it...
I have installed it on PC - Windows 10 - 32bits/2gb ram
Once we can depend on GTK+ 3.16 and Glade supports it.
Version 0.24.3 for Windows.
When there's an unsaved document and you try to quit the app, you're offered to "Close Without Saving", "Cancel" or "Save" the document. However, "Cancel" does the same as "Close Without Saving" instead of cancelling the operation, which is what I would expect.
It would be really nice to have it available in gaupol:
Giving a try to the current gaupol from git in a live session of Fedora 24 Workstation:
After using Gaupol for some time I must say it's a great tool, but I lack one thing. It's pretty difficult to make the timing right if there is just the audio feedback and the speed the reaction of your fingers. I think way better would be to have a simple audio frequency visualization with the possibility to select range with mouse. One could then add a new subtitle record, write some text and then select beginning with mouse left click and select end with mouse right click - both on a stripe visualizing the audio frequency.
The selection on the stripe shall be synchronized with selected subtitle record, so that one can scroll in the list of subtitle records, click on one and the visualization of audio frequency will immediately select the corresponding range.
What do you think?
It would be nice if gaupol would support .lrc files which are often used for music.
When editing text of a subtitle, the "Use Shift+Return for line-break" instruction can overlap with the text being edited when at the bottom of the window.
To complement Set End From Video Position (in the Edit
menu, or shortcut K
). This could be helpful to deal with out-of-sync subtitles, especially if the function Seek backward/forward was made more powerful (by allowing not just big jumps, but also 50-100ms jumps).
Hi. I'm not sure if this is a GTK or a gaupol
bug (but I've only seen this happen with gaupol
). If I try to run gaupol
(from master
) on openSUSE Tumbleweed, gaupol
will segfault. I'm currently trying to upload the gaupol
package on openSUSE (because 0.28
is quite old) but I can't run any version of gaupol
at the moment.
% /usr/bin/gaupol
[1] 8000 segmentation fault (core dumped) /usr/bin/gaupol
Here's the stack trace, it looks like a NULL
pointer is being passed to _gtk_style_provider_private_get_settings
internally. I've tried to print
debug the code to find where it's happening (I'm assuming it's somewhere in gaupol/style.py
) but I'm not very familiar with PyGTK. Hopefully this is enough for you to be able to figure out what's going on. I can post the core dump if it'll make it easier.
% gdb /usr/bin/python3
GNU gdb (GDB; openSUSE Tumbleweed) 7.12.1
Copyright (C) 2017 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law. Type "show copying"
and "show warranty" for details.
This GDB was configured as "x86_64-suse-linux".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
<http://bugs.opensuse.org/>.
Find the GDB manual and other documentation resources online at:
<http://www.gnu.org/software/gdb/documentation/>.
For help, type "help".
Type "apropos word" to search for commands related to "word".
(gdb) run /usr/bin/gaupol
Program received signal SIGSEGV, Segmentation fault.
0x00007ffff08278a9 in _gtk_style_provider_private_get_settings (provider=0x0) at gtkstyleproviderprivate.c:123
123 gtkstyleproviderprivate.c: No such file or directory.
(gdb) bt
#0 0x00007ffff08278a9 in _gtk_style_provider_private_get_settings (provider=0x0) at gtkstyleproviderprivate.c:123
#1 0x00007ffff06c3518 in gtk_css_value_initial_compute (value=<optimized out>, property_id=1, provider=0x0, style=0x8920d0, parent_style=0x0) at gtkcssinitialvalue.c:52
#2 0x00007ffff06d8614 in gtk_css_static_style_compute_value (style=0x8920d0, provider=<optimized out>, parent_style=<optimized out>, id=1, specified=0x7ffff0e4f200 <inherit>, section=0x0) at gtkcssstaticstyle.c:237
#3 0x00007ffff06c484c in _gtk_css_lookup_resolve (lookup=lookup@entry=0x80c110, provider=provider@entry=0x0, style=style@entry=0x8920d0, parent_style=parent_style@entry=0x0) at gtkcsslookup.c:122
#4 0x00007ffff06d853c in gtk_css_static_style_new_compute (provider=provider@entry=0x0, matcher=matcher@entry=0x0, parent=parent@entry=0x0) at gtkcssstaticstyle.c:195
#5 0x00007ffff06d8595 in gtk_css_static_style_get_default () at gtkcssstaticstyle.c:164
#6 0x00007ffff06c51b2 in gtk_css_node_init (cssnode=0x889eb0) at gtkcssnode.c:663
#7 0x00007ffff2d65caf in g_type_create_instance () at /usr/lib64/libgobject-2.0.so.0
#8 0x00007ffff2d47b8b in () at /usr/lib64/libgobject-2.0.so.0
#9 0x00007ffff2d4959d in g_object_newv () at /usr/lib64/libgobject-2.0.so.0
#10 0x00007ffff2d49d54 in g_object_new () at /usr/lib64/libgobject-2.0.so.0
#11 0x00007ffff06e0a7a in gtk_css_widget_node_new (widget=widget@entry=0x890260) at gtkcsswidgetnode.c:297
#12 0x00007ffff08be967 in gtk_widget_init (instance=0x890260, g_class=0x88a390) at gtkwidget.c:4414
#13 0x00007ffff2d65caf in g_type_create_instance () at /usr/lib64/libgobject-2.0.so.0
#14 0x00007ffff2d47b8b in () at /usr/lib64/libgobject-2.0.so.0
#15 0x00007ffff2d4959d in g_object_newv () at /usr/lib64/libgobject-2.0.so.0
#16 0x00007ffff31ceb0c in () at /usr/lib64/python3.6/site-packages/gi/_gi.cpython-36m-x86_64-linux-gnu.so
#17 0x00007ffff31d5ab1 in () at /usr/lib64/python3.6/site-packages/gi/_gi.cpython-36m-x86_64-linux-gnu.so
#18 0x00007ffff79b260e in () at /usr/lib64/libpython3.6m.so.1.0
#19 0x00007ffff796a18c in _PyObject_FastCallDict () at /usr/lib64/libpython3.6m.so.1.0
#20 0x00007ffff79fb326 in () at /usr/lib64/libpython3.6m.so.1.0
#21 0x00007ffff79f30e7 in _PyEval_EvalFrameDefault () at /usr/lib64/libpython3.6m.so.1.0
#22 0x00007ffff79fcc62 in _PyFunction_FastCallDict () at /usr/lib64/libpython3.6m.so.1.0
#23 0x00007ffff796a266 in _PyObject_FastCallDict () at /usr/lib64/libpython3.6m.so.1.0
#24 0x00007ffff796ab72 in _PyObject_Call_Prepend () at /usr/lib64/libpython3.6m.so.1.0
#25 0x00007ffff796a5ab in PyObject_Call () at /usr/lib64/libpython3.6m.so.1.0
#26 0x00007ffff79b4cdd in () at /usr/lib64/libpython3.6m.so.1.0
#27 0x00007ffff79b260e in () at /usr/lib64/libpython3.6m.so.1.0
#28 0x00007ffff796a18c in _PyObject_FastCallDict () at /usr/lib64/libpython3.6m.so.1.0
#29 0x00007ffff79fb326 in () at /usr/lib64/libpython3.6m.so.1.0
#30 0x00007ffff79f30e7 in _PyEval_EvalFrameDefault () at /usr/lib64/libpython3.6m.so.1.0
#31 0x00007ffff79f2279 in PyEval_EvalCodeEx () at /usr/lib64/libpython3.6m.so.1.0
#32 0x00007ffff79f201b in PyEval_EvalCode () at /usr/lib64/libpython3.6m.so.1.0
#33 0x00007ffff79f02e8 in () at /usr/lib64/libpython3.6m.so.1.0
#34 0x00007ffff79a3056 in PyCFunction_Call () at /usr/lib64/libpython3.6m.so.1.0
#35 0x00007ffff79f8fd3 in _PyEval_EvalFrameDefault () at /usr/lib64/libpython3.6m.so.1.0
#36 0x00007ffff79fb891 in () at /usr/lib64/libpython3.6m.so.1.0
#37 0x00007ffff79fb29b in () at /usr/lib64/libpython3.6m.so.1.0
#38 0x00007ffff79f30e7 in _PyEval_EvalFrameDefault () at /usr/lib64/libpython3.6m.so.1.0
#39 0x00007ffff79fb59a in () at /usr/lib64/libpython3.6m.so.1.0
#40 0x00007ffff79fb29b in () at /usr/lib64/libpython3.6m.so.1.0
#41 0x00007ffff79f30e7 in _PyEval_EvalFrameDefault () at /usr/lib64/libpython3.6m.so.1.0
#42 0x00007ffff79fb59a in () at /usr/lib64/libpython3.6m.so.1.0
#43 0x00007ffff79fb29b in () at /usr/lib64/libpython3.6m.so.1.0
#44 0x00007ffff79f30e7 in _PyEval_EvalFrameDefault () at /usr/lib64/libpython3.6m.so.1.0
#45 0x00007ffff79fb59a in () at /usr/lib64/libpython3.6m.so.1.0
#46 0x00007ffff79fb29b in () at /usr/lib64/libpython3.6m.so.1.0
#47 0x00007ffff79f30e7 in _PyEval_EvalFrameDefault () at /usr/lib64/libpython3.6m.so.1.0
#48 0x00007ffff79fcc62 in _PyFunction_FastCallDict () at /usr/lib64/libpython3.6m.so.1.0
#49 0x00007ffff796a266 in _PyObject_FastCallDict () at /usr/lib64/libpython3.6m.so.1.0
#50 0x00007ffff796b534 in _PyObject_CallMethodIdObjArgs () at /usr/lib64/libpython3.6m.so.1.0
#51 0x00007ffff7a0f124 in PyImport_ImportModuleLevelObject () at /usr/lib64/libpython3.6m.so.1.0
#52 0x00007ffff79f0648 in () at /usr/lib64/libpython3.6m.so.1.0
#53 0x00007ffff79a2ff6 in PyCFunction_Call () at /usr/lib64/libpython3.6m.so.1.0
#54 0x00007ffff79f8fd3 in _PyEval_EvalFrameDefault () at /usr/lib64/libpython3.6m.so.1.0
#55 0x00007ffff79fb891 in () at /usr/lib64/libpython3.6m.so.1.0
#56 0x00007ffff79fb29b in () at /usr/lib64/libpython3.6m.so.1.0
#57 0x00007ffff79f30e7 in _PyEval_EvalFrameDefault () at /usr/lib64/libpython3.6m.so.1.0
#58 0x00007ffff79fcc62 in _PyFunction_FastCallDict () at /usr/lib64/libpython3.6m.so.1.0
#59 0x00007ffff796a266 in _PyObject_FastCallDict () at /usr/lib64/libpython3.6m.so.1.0
#60 0x00007ffff796b534 in _PyObject_CallMethodIdObjArgs () at /usr/lib64/libpython3.6m.so.1.0
#61 0x00007ffff7a0f0bf in PyImport_ImportModuleLevelObject () at /usr/lib64/libpython3.6m.so.1.0
#62 0x00007ffff79f56f8 in _PyEval_EvalFrameDefault () at /usr/lib64/libpython3.6m.so.1.0
#63 0x00007ffff79f2279 in PyEval_EvalCodeEx () at /usr/lib64/libpython3.6m.so.1.0
#64 0x00007ffff79f201b in PyEval_EvalCode () at /usr/lib64/libpython3.6m.so.1.0
#65 0x00007ffff79f02e8 in () at /usr/lib64/libpython3.6m.so.1.0
#66 0x00007ffff79a3056 in PyCFunction_Call () at /usr/lib64/libpython3.6m.so.1.0
#67 0x00007ffff79f8fd3 in _PyEval_EvalFrameDefault () at /usr/lib64/libpython3.6m.so.1.0
#68 0x00007ffff79fb891 in () at /usr/lib64/libpython3.6m.so.1.0
#69 0x00007ffff79fb29b in () at /usr/lib64/libpython3.6m.so.1.0
#70 0x00007ffff79f30e7 in _PyEval_EvalFrameDefault () at /usr/lib64/libpython3.6m.so.1.0
#71 0x00007ffff79fb59a in () at /usr/lib64/libpython3.6m.so.1.0
#72 0x00007ffff79fb29b in () at /usr/lib64/libpython3.6m.so.1.0
#73 0x00007ffff79f30e7 in _PyEval_EvalFrameDefault () at /usr/lib64/libpython3.6m.so.1.0
#74 0x00007ffff79fb59a in () at /usr/lib64/libpython3.6m.so.1.0
#75 0x00007ffff79fb29b in () at /usr/lib64/libpython3.6m.so.1.0
#76 0x00007ffff79f30e7 in _PyEval_EvalFrameDefault () at /usr/lib64/libpython3.6m.so.1.0
#77 0x00007ffff79fb59a in () at /usr/lib64/libpython3.6m.so.1.0
#78 0x00007ffff79fb29b in () at /usr/lib64/libpython3.6m.so.1.0
#79 0x00007ffff79f30e7 in _PyEval_EvalFrameDefault () at /usr/lib64/libpython3.6m.so.1.0
#80 0x00007ffff79fcc62 in _PyFunction_FastCallDict () at /usr/lib64/libpython3.6m.so.1.0
#81 0x00007ffff796a266 in _PyObject_FastCallDict () at /usr/lib64/libpython3.6m.so.1.0
#82 0x00007ffff796b534 in _PyObject_CallMethodIdObjArgs () at /usr/lib64/libpython3.6m.so.1.0
#83 0x00007ffff7a0f124 in PyImport_ImportModuleLevelObject () at /usr/lib64/libpython3.6m.so.1.0
#84 0x00007ffff79f56f8 in _PyEval_EvalFrameDefault () at /usr/lib64/libpython3.6m.so.1.0
#85 0x00007ffff79f2279 in PyEval_EvalCodeEx () at /usr/lib64/libpython3.6m.so.1.0
#86 0x00007ffff79f201b in PyEval_EvalCode () at /usr/lib64/libpython3.6m.so.1.0
#87 0x00007ffff7a7aa02 in () at /usr/lib64/libpython3.6m.so.1.0
#88 0x00007ffff7a7ad6d in PyRun_FileExFlags () at /usr/lib64/libpython3.6m.so.1.0
#89 0x00007ffff7a7ac37 in PyRun_SimpleFileExFlags () at /usr/lib64/libpython3.6m.so.1.0
#90 0x00007ffff7a81c47 in Py_Main () at /usr/lib64/libpython3.6m.so.1.0
#91 0x0000000000400ada in main ()
Here's my libgtk-3-0
version.
% rpm -qi libgtk-3-0 [GNU/Linux 10.26(8)]
Name : libgtk-3-0
Version : 3.22.11
Release : 1.1
Architecture: x86_64
Install Date: Sat 25 Mar 2017 01:50:45 AM AEDT
Group : System/Libraries
Size : 9345091
License : LGPL-2.1+
Signature : RSA/SHA256, Thu 23 Mar 2017 10:01:52 AM AEDT, Key ID b88b2fd43dbdc284
Source RPM : gtk3-3.22.11-1.1.src.rpm
Build Date : Thu 23 Mar 2017 10:00:18 AM AEDT
Build Host : lamb14
Relocations : (not relocatable)
Packager : https://bugs.opensuse.org
Vendor : openSUSE
URL : http://www.gtk.org/
Summary : The GTK+ toolkit library (version 3)
Description :
GTK+ is a multi-platform toolkit for creating graphical user interfaces.
Offering a complete set of widgets, GTK+ is suitable for projects
ranging from small one-off projects to complete application suites.
Distribution: openSUSE Tumbleweed
This happens when I try to save a SubRip file to MicroDVD. Let me know if you need additional info.
Traceback
File: /home/sbraz/gaupol/aeidon/deco.py
Line: 218
In: inner_wrapper
return function(*args, **kwargs)
File: /home/sbraz/gaupol/gaupol/agents/save.py
Line: 67
In: _on_save_main_document_as_activate
self.save_main_as(page)
File: /home/sbraz/gaupol/gaupol/agents/save.py
Line: 129
In: save_main_as
file = self._select_file(_("Save As"), page, file)
File: /home/sbraz/gaupol/gaupol/agents/save.py
Line: 188
In: _select_file
action.activate()
TypeError: activate() missing 1 required positional argument: 'parameter'
Environment
Platform: Linux-4.6.4-1-ARCH-x86_64-with-arch
Locale: en_GB.utf_8
Versions
aeidon: 0.91
chardet: 2.3.0
enchant: 1.6.6
gaupol: 0.91
gstreamer: 1.8.2.0
gtk+: 3.20.8
pygobject: 3.20.1
python: 3.5.2
Which local dictionary file to add new custom words to? If there's a common prefix, we can use that, e.g. with en_GB
and en_US
, add to en
. But this won't work if there's no common prefix. And if addition is done via enchant, then enchant needs to have a dictionary for the common one.
Every time a new file is opened, we get
(python3:15155): Gtk-WARNING **: Allocating size to
GtkApplicationWindow 0x13f2830 without calling
gtk_widget_get_preferred_width/height(). How does the code know
the size to allocate?
I can't tell where this originates from. The warning seems to be harmless, but I would of course like to get rid of it.
Hi,
Giving a try to the current gaupol from git in a live session of Fedora 24 Workstation (from Fedora-Workstation-Live-i386-24-1.2.iso):
File: /home/liveuser/Descargas/gaupol-0.91/gaupol/agents/menu.py
Line: 165
In: _on_undo_button_show_menufor i, action in enumerate(page.project.undoables):
AttributeError: 'NoneType' object has no attribute 'project'
Environment
Platform: Linux-4.5.5-300.fc24.i686-i686-with-fedora-24-Twenty_Four
Locale: es_ES.utf_8Versions
aeidon: 0.91
chardet: 2.2.1
enchant: 1.6.6
gaupol: 0.91
gstreamer: 1.8.1.0
gtk+: 3.20.6
pygobject: 3.20.1
python: 3.5.1
I didn't try to update the system of the live session, so I don't know if the involved packages are really up-to-date.
We're at least lacking some way to get the window handle (HWND) from GdkWin32
, but there doesn't seem to be any direct or clear way to do that with Python.
Sometimes it's hard to see what changed, especially when it's only whitespace. You could probably take advantage of difflib's SequenceMatcher to do this. I looked around but I don't see another library which would make it easier.
Feel free to re-use my code if it helps:
#!/usr/bin/env python3
import sys
import difflib
import colorama
def highlight_diff(a, b, a_delim_start, a_delim_end, b_delim_start, b_delim_end):
s = difflib.SequenceMatcher(a=a, b=b)
matching_block = s.get_matching_blocks()
previous_index_a, previous_index_b = (0, 0)
highlighted_a, highlighted_b = ("", "")
for block in matching_block:
highlighted_a += (a_delim_start + a[previous_index_a:block.a] +
a_delim_end + a[block.a:block.a + block.size])
previous_index_a = block.a + block.size
highlighted_b += (b_delim_start + b[previous_index_b:block.b] +
b_delim_end + b[block.b:block.b + block.size])
previous_index_b = block.b + block.size
return highlighted_a, highlighted_b
if __name__ == "__main__":
a, b = sys.argv[1:]
print("\n".join(highlight_diff(a, b, colorama.Style.BRIGHT + colorama.Fore.RED,
colorama.Style.RESET_ALL, colorama.Style.BRIGHT + colorama.Fore.GREEN,
colorama.Style.RESET_ALL)))
I removed API documentation in c341071. In hindsight, users of aeidon
might actually need this, but the way it's generated from source should preferrably be changed so that it could be auto-built and put at readthedocs.org or something.
This is not an immediate problem as there have been no significant API changes on the aeidon
part, so we can continue pointing people to the old documentation.
It's very common in subtitles that italics are forwarded by '/' character instead of '{Y:i}' sequence. It would be nice to have possibility of transform from one notation to the other, maybe in text correction tool?
Custom editor font size is too small.
Hi guys,
I have downloaded subtitles&video from: https://www.youtube.com/watch?v=CeBHA2m8xm4
I have dragged and dropped automatically generated subtitles (srt) into the program. Then I have tried to load video, unfortunately app has crashed. Video is of the format.
I'm attaching bugreport and mediainfo information. Thank you for your work and time guys!
**Traceback**
File: /usr/lib/python3.6/site-packages/gaupol/agents/video.py
Line: 184
In: _on_load_video_activate
self.player.set_path(path)
File: /usr/lib/python3.6/site-packages/gaupol/player.py
Line: 331
In: set_path
self.set_uri(aeidon.util.path_to_uri(path))
File: /usr/lib/python3.6/site-packages/gaupol/player.py
Line: 340
In: set_uri
self._xid = self.widget.get_window().get_xid()
AttributeError: 'GdkWaylandWindow' object has no attribute 'get_xid'
**Environment**
Platform: Linux-4.11.10-300.fc26.x86_64-x86_64-with-fedora-26-Twenty_Six
Locale: en_GB.utf_8
**Versions**
aeidon: 1.0
chardet: 2.3.0
enchant: 1.6.10
gaupol: 1.0
gstreamer: 1.12.2.0
gtk+: 3.22.17
pygobject: 3.24.1
python: 3.6.2
Or something?
Hello, thank you for this great subtitle editor!
I'm just having an issue with it on elementary OS. Everything is working fine except the video preview.
I can hear the sound but there's no video on the application itself. But if I preview it on MPlayer I have sound and image. I've also tried it on Linux Mint and still no video. It works fine on GNOME and Kubuntu though... Do I need to install something else to make work?
Thank you and keep up the great work!
I only report this because an error message invited me to, the bug is not annoying to me.
Here is how I can make it happen:
.srt
file.O
(or select Video
> Play Selection
in the menu bar). An error message appears with the following information:Traceback
File: /usr/lib/python3.6/site-packages/gaupol/agents/video.py
Line: 208
In: _on_play_selection_activate
self.player.play_segment(start, end)
File: /usr/lib/python3.6/site-packages/gaupol/player.py
Line: 299
In: play_segment
end = min(duration, self.calc.to_seconds(end)) * Gst.SECOND
TypeError: '<' not supported between instances of 'float' and 'NoneType'
Environment
Platform: Linux-4.11.9-1-ARCH-x86_64-with-arch
Locale: en_US.utf_8
Versions
aeidon: 1.2
chardet: 3.0.4
enchant: 1.6.8
gaupol: 1.2
gstreamer: 1.12.2.0
gtk+: 3.22.16
pygobject: 3.24.1
python: 3.6.1
instead of the current GdkX11. Should hopefully work on Wayland, Windows and other non-X11 systems.
For example:
- Dialogue1. - Dialogue2.
should be corrected to:
- Dialogue1.
- Dialogue2.
But it does not work currently.
Steps to reproduce:
Here I get the Gaupol error window with the next traceback:
File: /usr/lib/python3.5/site-packages/gaupol/applicationman.py
Line: 95
In: _on_activateself._init_application(opts, args)
File: /usr/lib/python3.5/site-packages/gaupol/applicationman.py
Line: 56
In: _init_applicationapplication.open_main(paths, opts.encoding)
File: /usr/lib/python3.5/site-packages/aeidon/deco.py
Line: 218
In: inner_wrapperreturn function(*args, **kwargs)
File: /usr/lib/python3.5/site-packages/gaupol/agents/open.py
Line: 271
In: open_mainself.add_page(page)
File: /usr/lib/python3.5/site-packages/gaupol/agents/open.py
Line: 54
In: add_pageself.emit("page-added", page)
File: /usr/lib/python3.5/site-packages/aeidon/observable.py
Line: 129
In: emitmethod(*((self,) + args + data))
File: /usr/lib/python3.5/site-packages/gaupol/agents/menu.py
Line: 266
In: _update_projects_menuaction.set_state(str(i))
AttributeError: 'NoneType' object has no attribute 'set_state'
Environment
Platform: Linux-4.11.8-100.fc24.i686+PAE-i686-with-fedora-24-Twenty_Four
Locale: es_ES.utf_8Versions
aeidon: 1.2
chardet: 2.2.1
enchant: 1.6.8
gaupol: 1.2
gstreamer: 1.8.3.0
gtk+: 3.20.10
pygobject: 3.20.1
python: 3.5.3
The installer gaupol-1.2-win32.exe (downloaded from here) is blocked by win10 x64 creator update, says that may damage the pc.
Seek …
or Play Selection
, but not Play/Pause
).Let the video play with the newly selected soundtrack before making a time jump. In other terms, either omit step 3, or unpause the video right after step 4. Note that one can then pause the video and make time jumps at will without the bug occurring, unless the sountrack is changed during a pause again.
Hi.
Some devices, like the high-profile chromecasts, can support subtitles, but only in a format called WebVTT. The format is based on srt
and a simple conversion can be achieved by using something like:
ffmpeg -i input.srt output.vtt
It would be superb if gaupol supported WebVTT out-of-the-box, even if not in its full generality, since this is one of the formats that we can expect other software/hardware to support and gain adoption, due to the W3 Consortium formalizing it.
Thanks for maintaining gaupol as one excellent subtitle editor,
Rogério.
P.S.: Subtitles served via Youtube already are downloaded in WebVTT and youtube-dl converts them to srt via ffmpeg, an external tool.
Hi.
First of all, thank you for adding the support for WebVTT to gaupol. It is really appreciated.
I would like to request a feature that would make gaupol nice to remove some subtitles that are exact duplicates with everything like start time, end time, duration (of course) and text.
In my experience, these are present when the original is malformed and, to get the files tidy, I would like to eliminate such problematic captions.
I'm attaching a file with such a problem here. (Sorry that I had to put a txt extension or github wouldn't allow me to upload the file).
Thanks for this creating amazing tool,
Rogério.
It would be nice to have an option to show what fixes were applied to each line (especially when we want to disable them because they are false positives). Maybe this could be shown when hovering over the line?
I haven't looked at the code so I don't know if it's easily doable, maybe you don't check which fixes cause changes.
Once gettext supports AppData XML files.
See e.g.
Tried to install gaupol on my iMac by the following come:
$ python3 setup.py install
during running install_egg_info, got the following error message:
sh: update-desktop-database: command not found
command 'update-desktop-database "/Users/xxx/anaconda/envs/py3/share/applications"' failed
Please help, thanks
Hi @otsaloma first of all thanks for developing gaupol! I looked around in the subtitle editors for linux and gaupol seems to be the best (at the least of those I was able to run and whose version is not 2 years old).
I was able to run gaupol without installing it following the instruction in the readme.md. However when I try to install it (as per install.md) I am stuck.
I use cd to enter gaupol folder and then I run: python3 setup.py install [--prefix=...]
But I get: invalid command name '[--prefix=...]'
How do I solve that?
Thanks a lot!
Once we're comfortable bumping our iso-codes dependency to 3.67 released 2016-04-01, which added JSON files under /usr/share/iso-codes/json
and deprecated the XML files.
http://anonscm.debian.org/cgit/pkg-isocodes/iso-codes.git/tree/ChangeLog
When dragging and dropping a video file on Gaupol, it tells the user that the file seems too big to be a text-based subtitle file. I suggest asking the user to choose between loading the file as a video or as subtitles. (Edit: the issue also happens when passing a video file as an argument when launching Gaupol from the command line. The -v option does not solve the issue as it does not load the video in Gaupol's player.)
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.