logo Debian Debian Debian-France Debian-Facile Debian-fr.org Forum-Debian.fr Debian ? Communautés logo inclusivité

Debian-facile

Bienvenue sur Debian-Facile, site d'aide pour les nouveaux utilisateurs de Debian.

Vous n'êtes pas identifié(e).

#26 17-10-2024 09:15:34

Croutons
Membre
Distrib. : Debian12
Noyau : Linux 6.1.0-13-amd64
(G)UI : Fluxbox(NakeDeb)
Inscription : 16-12-2016

Re : un script python convertion webtext (.vtt) vers subrip(.srt)

Tawal a écrit :

Peux-tu fournir un fichier .vtt que je puisse tester grandeur nature ?
Merci.


dans le pastebin en lien dans le message
https://dpaste.com/3Z28J7397


-->les cahiers du debutant<--      WikiDF-->Découvrir les principales commandes Linux<-- 
L' expérience, c'est le nom que chacun donne à ses erreurs. Oscar Wilde

Hors ligne

#27 17-10-2024 09:35:51

Tawal
Membre
Distrib. : Debian Stable à jour
Noyau : amd64
(G)UI : Xfce
Inscription : 25-02-2021

Re : un script python convertion webtext (.vtt) vers subrip(.srt)

C'est dommage, il n'y a aucune balise <…> à enlever.
Mais je m'étais créé un fichier de test avec des balises à la noix.
En cherchant des exemples de fichier vtt, je suis tombé sur un exemple avec des NOTE entre les sous-titres.
Est-ce que ces NOTE sont dérangeantes ?
Ou ce n'est que la "feuille de style" en début de fichier qui gène et les morceaux "line:…" en fin de ligne de sous-titre ?

Dernière modification par Tawal (17-10-2024 09:36:37)


Comme la science n'est pas infuse, elle se diffuse.
Useless Use of Cat Award
Filenames and Pathnames in Shell: How to do it Correctly
À chaque problème sa solution, à chaque solution son moyen, si pas de moyen, toujours le problème !

Hors ligne

#28 17-10-2024 09:51:15

Croutons
Membre
Distrib. : Debian12
Noyau : Linux 6.1.0-13-amd64
(G)UI : Fluxbox(NakeDeb)
Inscription : 16-12-2016

Re : un script python convertion webtext (.vtt) vers subrip(.srt)

ah oui pas de balise <> , oups j'ai viré tous les autres fichiers faudrait que je voie mon historique savoir quelle url j'ai utilisé
dans le code message #23 la dernière ligne n'est pas appliqué (s/(\d)\.(\d)/\1,\2/g)

Tawal a écrit :

En cherchant des exemples de fichier vtt, je suis tombé sur un exemple avec des NOTE entre les sous-titres.
Est-ce que ces NOTE sont dérangeantes ?


a des notes?
a je suppose que ça va apparaître a l’écran sad
ça ressemble a quoi?
en fait j'ai aucune idée de la syntaxe des différents fichiers qui peuvent se présenter


-->les cahiers du debutant<--      WikiDF-->Découvrir les principales commandes Linux<-- 
L' expérience, c'est le nom que chacun donne à ses erreurs. Oscar Wilde

Hors ligne

#29 17-10-2024 10:22:16

Tawal
Membre
Distrib. : Debian Stable à jour
Noyau : amd64
(G)UI : Xfce
Inscription : 25-02-2021

Re : un script python convertion webtext (.vtt) vers subrip(.srt)

Le bout de fichier .vtt que j'ai agrémenté de balises à la noix :

WEBVTT - Traduction d'un film que j'aime

NOTE
Cette traduction a été réalisée par Kyle afin
que certains de ses amis puissent voir le film
avec leurs parents.

1
00:02:15.000 --> 00:02:20.000
- Ta en kopp varmt te.
 Det är inte varmt.
YYY <test>dgfdgeg g egersg gesrg eg</code>    XXXXXX

2
00:02:20.000 --> 00:02:25.000
- Har en kopp te.
- Det smakar som te. <retset>.fedfg<> <ccc.b.b.b>.f ff.  zgfg</ccc>

NOTE La traduction de cette dernière ligne
peut être à revoir.

3
00:02:25.000 --> 00:02:30.000
- Ta en kopp


Je regarde pour le remplacement du point par une virgule wink

Edit:
Finalement, je reviens à ta 1ère écriture :

#!/bin/sed -Ef

/00:0/,$!d
s/line:.*|<[^>]*>//g
s/([0-9])\.([0-9])/\1,\2/g

Dernière modification par Tawal (17-10-2024 10:30:50)


Comme la science n'est pas infuse, elle se diffuse.
Useless Use of Cat Award
Filenames and Pathnames in Shell: How to do it Correctly
À chaque problème sa solution, à chaque solution son moyen, si pas de moyen, toujours le problème !

Hors ligne

#30 17-10-2024 10:59:37

Croutons
Membre
Distrib. : Debian12
Noyau : Linux 6.1.0-13-amd64
(G)UI : Fluxbox(NakeDeb)
Inscription : 16-12-2016

Re : un script python convertion webtext (.vtt) vers subrip(.srt)

Tawal a écrit :

Finalement, je reviens à ta 1ère écriture :


test sur ce fichier
https://dpaste.com/FLU532XAF

le rendu ma l'air bon
après si y'a d'autre syntaxe, on est dans les choux


-->les cahiers du debutant<--      WikiDF-->Découvrir les principales commandes Linux<-- 
L' expérience, c'est le nom que chacun donne à ses erreurs. Oscar Wilde

Hors ligne

#31 17-10-2024 12:10:06

Tawal
Membre
Distrib. : Debian Stable à jour
Noyau : amd64
(G)UI : Xfce
Inscription : 25-02-2021

Re : un script python convertion webtext (.vtt) vers subrip(.srt)

Croutons a écrit :

après si y'a d'autre syntaxe, on est dans les choux


Ma méconnaissance à ce sujet ne t'aidera pas tongue
Reste l'expérience, jusqu'à ce que ça plante … ou pas smile


Comme la science n'est pas infuse, elle se diffuse.
Useless Use of Cat Award
Filenames and Pathnames in Shell: How to do it Correctly
À chaque problème sa solution, à chaque solution son moyen, si pas de moyen, toujours le problème !

Hors ligne

#32 17-10-2024 13:20:35

Tawal
Membre
Distrib. : Debian Stable à jour
Noyau : amd64
(G)UI : Xfce
Inscription : 25-02-2021

Re : un script python convertion webtext (.vtt) vers subrip(.srt)

Tiens j'ai une autre forme (ajout de l'option '-n' au shebang) :

#!/bin/sed -Enf

/^00:0/,${
    s/<[^>]*>| line:.*//g
    s/([0-9])\.([0-9])/\1,\2/g
    p
}


Là, c'est clair :

  • On sélectionne un bloc commençant par la 1ère ligne contenant  "00:0" en début de ligne jusqu'à la fin du fichier (modifié selon edit2)

  • Ensuite sur cette sélection, on applique les substitutions

  • Puis on affiche

  • Parti pour un autre bloc … (voir edit2)



Edit:
Ajout de l'attribut 'g' à aux substitutions.

Edit2:
Modifié /!^00:0/ par $, on ne traite plus qu'un seul bloc.

Edit3:
Avec plus de précision sur les actions (quoi, où) :

#!/bin/sed -Enf

/^00:0/,${
    /^00:0/{
        s/ line:.*$//
        s/\./,/g
    }
    s/<[^>]*>//g
    p
}

Dernière modification par Tawal (18-10-2024 17:54:24)


Comme la science n'est pas infuse, elle se diffuse.
Useless Use of Cat Award
Filenames and Pathnames in Shell: How to do it Correctly
À chaque problème sa solution, à chaque solution son moyen, si pas de moyen, toujours le problème !

Hors ligne

#33 19-10-2024 10:40:37

Croutons
Membre
Distrib. : Debian12
Noyau : Linux 6.1.0-13-amd64
(G)UI : Fluxbox(NakeDeb)
Inscription : 16-12-2016

Re : un script python convertion webtext (.vtt) vers subrip(.srt)

ah pas cool je suis tombé sur ce genre de syntaxe, et la sa passe plus

2333069060
01:29:05.400 --> 01:29:09.040 align:right
<c.white>Heureusement qu'il n'est pas</c>
<c.white>phobique des araignées.</c>

271270237
01:29:09.360 --> 01:29:10.760 align:center
<c.white>-Elle est partie ?</c>

2102289563
01:29:11.040 --> 01:29:14.280 align:center
<c.white>-Non, elle est encore là.</c>
<c.white>Je la vois.</c>

2485333838
01:29:14.640 --> 01:29:16.960 align:center
<c.yellow>Elle est sur ta tête !</c>
 


-->les cahiers du debutant<--      WikiDF-->Découvrir les principales commandes Linux<-- 
L' expérience, c'est le nom que chacun donne à ses erreurs. Oscar Wilde

Hors ligne

#34 19-10-2024 18:33:43

Tawal
Membre
Distrib. : Debian Stable à jour
Noyau : amd64
(G)UI : Xfce
Inscription : 25-02-2021

Re : un script python convertion webtext (.vtt) vers subrip(.srt)

Ah ah, je disais que l'expérience parlerai …
Essaie ceci :

#!/bin/sed -Enf

/^00:0/,${
    s/^(([0-9]{2}:){2}[0-9]{2}\.[0-9]{3}.*([0-9]{2}:){2}[0-9]{2}\.[0-9]{3}).*$/\1/
    s/\./,/g
    s/<[^>]*>//g
    p
}



Edit:
Ou ceci, mais c'est moins robuste (quoique le code du dessus mériterait quelques assurances) :

#!/bin/sed -Enf

/^[0-9]{2}:/,${
    /^[0-9]{2}:/{
        s/^([[:digit:]:\. ->]*).*$/\1/
        s/\./,/g
    }
    s/<[^>]*>//g
    p
}

Dernière modification par Tawal (19-10-2024 18:54:37)


Comme la science n'est pas infuse, elle se diffuse.
Useless Use of Cat Award
Filenames and Pathnames in Shell: How to do it Correctly
À chaque problème sa solution, à chaque solution son moyen, si pas de moyen, toujours le problème !

Hors ligne

#35 20-10-2024 08:44:39

Croutons
Membre
Distrib. : Debian12
Noyau : Linux 6.1.0-13-amd64
(G)UI : Fluxbox(NakeDeb)
Inscription : 16-12-2016

Re : un script python convertion webtext (.vtt) vers subrip(.srt)

aucun des 2 ne fonctionne
https://dpaste.com/FB2UMXHHU

-->les cahiers du debutant<--      WikiDF-->Découvrir les principales commandes Linux<-- 
L' expérience, c'est le nom que chacun donne à ses erreurs. Oscar Wilde

Hors ligne

#36 20-10-2024 10:10:16

Tawal
Membre
Distrib. : Debian Stable à jour
Noyau : amd64
(G)UI : Xfce
Inscription : 25-02-2021

Re : un script python convertion webtext (.vtt) vers subrip(.srt)

C'est un peu vague "Aucun ne fonctionne".
Qu'est-ce qui ne va pas ?
J'ai ça comme retour sur ton fichier avec ma dernière mouture du script : https://debian-facile.org/paste-371AD2E907

Sont-ce les nombres au dessus des lignes de temps qui dérangent ?
Car le résultat correspond à tes critères.

Edit:
J'ai regardé à quoi devait ressembler un fichier .srt
Pour moi, il y a 2 erreurs :
   - il manque le numéro du 1er sous-titre (mais apparemment ce n'était pas dérangeant avant)
   - les numéros de sous titres ne sont pas consécutifs et ne commencent pas par 1
S'il faut modifier ce genre de choses, sed n'est plus adapté, on pourrait utiliser awk à la place.
Edit2:
Ou on peut essayer d'enlever les numéros de sous-titre.
Essaie si ça fonctionne, mais pas sûr :

#!/bin/sed -Enf

/^[0-9]{2}:/,${
    /^[0-9]{2}:/{
        s/^([[:digit:]:\. ->]*).*$/\1/
        s/\./,/g
    }
    s/<[^>]*>//g
    /^[[:digit:]]+$/d
   p
}



Edit3:
Un script gawk qui remet les bons numéros de sous-titre (et qui fait le reste aussi smile) :

#!/bin/gawk -f
{
    if (/^[[:digit:]]{2}:/) {s=1}
    if (s) {
        if (/^[[:digit:]]+$/) {next}
        if (/^[[:digit:]]{2}:/) {
            gsub(/\./, ",")
            printf("%s\n%s %s %s\n", ++k, $1, $2, $3)
            next
        }
        gsub(/<[^>]*>/, "")
        print
    }
}

Dernière modification par Tawal (20-10-2024 12:19:14)


Comme la science n'est pas infuse, elle se diffuse.
Useless Use of Cat Award
Filenames and Pathnames in Shell: How to do it Correctly
À chaque problème sa solution, à chaque solution son moyen, si pas de moyen, toujours le problème !

Hors ligne

#37 20-10-2024 13:29:43

Croutons
Membre
Distrib. : Debian12
Noyau : Linux 6.1.0-13-amd64
(G)UI : Fluxbox(NakeDeb)
Inscription : 16-12-2016

Re : un script python convertion webtext (.vtt) vers subrip(.srt)

le script gawk c'est du lourd yes.gif
j'y comprend pas grand chose mais c'est super, j’espère  qu'il n'y a pas d'autre surprises dans ses foutu vtt
(les fichiers pas les vélos out.gif)

-->les cahiers du debutant<--      WikiDF-->Découvrir les principales commandes Linux<-- 
L' expérience, c'est le nom que chacun donne à ses erreurs. Oscar Wilde

Hors ligne

#38 20-10-2024 14:20:26

Tawal
Membre
Distrib. : Debian Stable à jour
Noyau : amd64
(G)UI : Xfce
Inscription : 25-02-2021

Re : un script python convertion webtext (.vtt) vers subrip(.srt)

Re,
J'ai un peu modifié le script gawk afin qu'il crée directement le fichier .srt (tout en gardant l'original .vtt) :

#!/bin/gawk -f
BEGIN {
    f = ARGV[1]
    sub(/vtt$/, "srt", f)
}
{
    if (/^[[:digit:]]{2}:/) {s=1}
    if (s) {
        if (/^[[:digit:]]+$/) {next}
        if (/^[[:digit:]]{2}:/) {
            gsub(/\./, ",")
            printf("%s\n%s %s %s\n", ++k, $1, $2, $3) > f
            next
        }
        gsub(/<[^>]*>/, "")
        print > f
    }
}


Du coup, il s'utilise ainsi :

./script_awk fichier.vtt


Et il donne dans le même répertoire que le fichier original un fichier nommé "fichier.srt".

Dernière modification par Tawal (20-10-2024 15:32:55)


Comme la science n'est pas infuse, elle se diffuse.
Useless Use of Cat Award
Filenames and Pathnames in Shell: How to do it Correctly
À chaque problème sa solution, à chaque solution son moyen, si pas de moyen, toujours le problème !

Hors ligne

Pied de page des forums