Skript für Ansagen in mp3-Dateien

Wieso? Bis 3.8 steht da kein entsprechender Hinweis bei den Downloads

Nur dran denken 32bit Version heißt bei 3.4 oder früher x86 , die 64er tut es nicht.
Ab 3.5.x steht nicht WinXP(7) oder früher.

Aber bei 3.8.12 steht auch „Note that Python 3.8.12 cannot be used on Windows XP or earlier.“ und nicht windows 7

1 „Gefällt mir“

3.4 oder niedriger sollte also gehen.
Ansonsten müsste ich mir das Script ansehen, vieles aus der 3er Version läuft auch unter 2.7.
Also einfach testen und die Fehlermeldungen posten, da dürfte nicht viel sein.

Ich hatte überlesen, dass es um win7 geht, also geht Version 3.8 und kleiner.
Die Auswahl also größer.

Sorry ich nochmal…

Gibt es eine Möglichkeit diese Ansagen über dieses Skript auch ohne Google und Amazon zu machen ?

Bei mir scheitert es schon am google account API Key erstellen weil ich keine Kreditkarte habe. Paypal wird nicht akzeptiert. Bezahlen will ich ja eh nix.

Die Qualität der Sprache ist nicht sonderlich wichtig Hauptsache man versteht welche Folge gespielt wird.

Habs jetzt für ein paar Folgen händisch gemacht aber das wird ein Haufen Arbeit.

Habe Windows 7 und bin für jeden Tipp dankbar.

Hast Du das schon einmal versucht?

https://ttsmp3.com/

Ja genau damit habe ich es gemacht.
Aber händisch alleine für 10 benjamin Folgen…das dauert ewig.

Oder kriege ich das irgendwie in das skript eingebaut ?

Hallo,

funktioniert das Script noch unter macOS Monterey (12.3.1)?

Ich bin Laie, habe aber alles genau nach Anleitung gemacht:

  • Python 3.12 installiert
  • übers Terminal Home Brew installiert (für ffmpeg) /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
  • Dann im Terminal ffmpeg installiert brew install" ffmpeg
  • Command line tools installiert xcode-select --install
  • die 3 tools aus dem tools-ordner runtergeladen

Bekomme nach dem Ausführen immer folgende Meldung:

NameError: name 'false' is not defined. Did you mean: 'False'?

Hier der komplette Terminal-Verlauf:

Last login: Tue Feb 13 20:34:01 on ttys000

The default interactive shell is now zsh.
To update your account to use zsh, please run `chsh -s /bin/zsh`.
For more details, please visit https://support.apple.com/kb/HT208050.
MacBook-Pro-2:~ Benutzername$ cd /Users/Benutzername/Downloads/mp3/Test/tools
MacBook-Pro-2:tools Benutzername$ 
MacBook-Pro-2:tools Benutzername$ python3 add_lead_in_messages.py -i '04_B' -o /Users/Benutzername/Downloads/mp3/Test --use-say --add-numbering
Traceback (most recent call last):
  File "/Users/Benutzername/Downloads/mp3/Test/tools/add_lead_in_messages.py", line 1, in <module>
    {"payload":{"allShortcutsEnabled":false,"fileTree":{"tools":{"items":[{"name":"add_lead_in_messages.py","path":"tools/add_lead_in_messages.py","contentType":"file"},{"name":"create_audio_messages.py","path":"tools/create_audio_messages.py","contentType":"file"},{"name":"text_to_speech.py","path":"tools/text_to_speech.py","contentType":"file"}],"totalCount":3},"":{"items":[{"name":"docs","path":"docs","contentType":"directory"},{"name":"tools","path":"tools","contentType":"directory"},{"name":".gitignore","path":".gitignore","contentType":"file"},{"name":"LICENSE","path":"LICENSE","contentType":"file"},{"name":"audio_messages_cz.txt","path":"audio_messages_cz.txt","contentType":"file"},{"name":"audio_messages_de.txt","path":"audio_messages_de.txt","contentType":"file"},{"name":"audio_messages_en.txt","path":"audio_messages_en.txt","contentType":"file"},{"name":"audio_messages_es.txt","path":"audio_messages_es.txt","contentType":"file"},{"name":"audio_messages_it.txt","path":"audio_messages_it.txt","contentType":"file"},{"name":"audio_messages_nl.txt","path":"audio_messages_nl.txt","contentType":"file"},{"name":"platformio.ini","path":"platformio.ini","contentType":"file"},{"name":"tonuino.ino","path":"tonuino.ino","contentType":"file"}],"totalCount":12}},"fileTreeProcessingTime":4.3082,"foldersToFetch":[],"repo":{"id":148837162,"defaultBranch":"master","name":"TonUINO","ownerLogin":"seisfeld","currentUserCanPush":false,"isFork":true,"isEmpty":false,"createdAt":"2018-09-14T20:12:09.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/9606362?v=4","public":true,"private":false,"isOrgOwned":false},"symbolsExpanded":false,"treeExpanded":true,"refInfo":{"name":"master","listCacheKey":"v0:1582380161.0","canEdit":false,"refType":"branch","currentOid":"b32e5fac178c4a3b8327f79114b975393f28ad4d"},"path":"tools/add_lead_in_messages.py","currentUser":null,"blob":{"rawLines":["#!/usr/bin/env python3","","# Adds a lead-in message to each mp3 file of a directory storing the result in another directory.","# So - when played e.g. on a TonUINO - you first will hear the title of the track, then the track itself.","","","import argparse, base64, json, os, re, subprocess, sys, text_to_speech","","","argFormatter = lambda prog: argparse.RawDescriptionHelpFormatter(prog, max_help_position=27, width=100)","argparser = text_to_speech.PatchedArgumentParser(","    description=","        'Adds a lead-in message to each mp3 file of a directory storing the result in another directory.\\n' +","        'So - when played e.g. on a TonUINO - you first will hear the title of the track, then the track itself.\\n\\n' +","        text_to_speech.textToSpeechDescription,","    usage='%(prog)s -i my/source/dir -o my/output/dir [optional arguments...]',","    formatter_class=argFormatter)","argparser.add_argument('-i', '--input', type=str, required=True, help='The input directory or mp3 file to process (input won\\'t be changed)')","argparser.add_argument('-o', '--output', type=str, required=True, help='The output directory where to write the mp3 files (will be created if not existing)')","text_to_speech.addArgumentsToArgparser(argparser)","argparser.add_argument('--file-regex', type=str, default=None, help=\"The regular expression to use for parsing the mp3 file name. If missing the whole file name except a leading number will be used as track title.\")","argparser.add_argument('--title-pattern', type=str, default=None, help=\"The pattern to use as track title. May contain groups of `--file-regex`, e.g. '\\\\1'\")","argparser.add_argument('--add-numbering', action='store_true', help='Whether to add a three-digit number to the mp3 files (suitable for DFPlayer Mini)')","argparser.add_argument('--dry-run', action='store_true', help='Dry run: Only prints what the script would do, without actually creating files')","args = argparser.parse_args()","","text_to_speech.checkArgs(argparser, args)","","fileRegex = re.compile(args.file_regex if args.file_regex is not None else '\\\\d*(.*)')","titlePattern = args.title_pattern if args.title_pattern is not None else '\\\\1'","","mp3FileIndex = 0","","","def fail(msg):","    print('ERROR: ' + msg)","    sys.exit(1)","","","def addLeadInMessage(inputPath, outputPath):","    global mp3FileIndex","","    if not os.path.exists(inputPath):","        fail('Input does not exist: ' + os.path.abspath(inputPath))","","    if os.path.isdir(inputPath):","        if os.path.exists(outputPath):","            if not os.path.isdir(outputPath):","                fail('Input is a directory, but output isn\\'t: ' + os.path.abspath(outputPath))","        elif not args.dry_run:","            os.mkdir(outputPath)","","        mp3FileIndex = 0","        for child in sorted(os.listdir(inputPath)):","            addLeadInMessage(os.path.join(inputPath, child), os.path.join(outputPath, child))","","        return","","    inputFileNameSplit = os.path.splitext(os.path.basename(inputPath))","    inputFileName = inputFileNameSplit[0]","    inputFileExt = inputFileNameSplit[1].lower()","","    if inputFileExt != '.mp3':","        print('Ignoring {} (no mp3 file)'.format(os.path.abspath(inputPath)))","        return","","    if args.add_numbering:","        outputPathSplit = os.path.split(outputPath)","        outputPath = os.path.join(outputPathSplit[0], '{:0>3}_{}'.format(mp3FileIndex + 1, outputPathSplit[1]))","        mp3FileIndex += 1","","    if os.path.isfile(outputPath):","        print('Skipping {} (file already exists)'.format(os.path.abspath(outputPath)))","        return","","    text = re.sub(fileRegex, titlePattern, inputFileName).replace('_', ' ').strip()","    print('Adding lead-in \"{}\" to {}'.format(text, os.path.abspath(outputPath)))","","    if not args.dry_run:","        tempLeadInFile = 'temp-lead-in.mp3'","        tempLeadInFileAdjusted = 'temp-lead-in_adjusted.mp3'","        tempListFile = 'temp-list.txt'","        tempTargetFile = 'temp-target.mp3'","        text_to_speech.textToSpeechUsingArgs(text=text, targetFile=tempLeadInFile, args=args)","","        # Adjust sample rate and mono/stereo","        print('Detecting sample rate and channels')","        detectionInfo = detectAudioData(inputPath)","        if detectionInfo is None:","            # We can't adjust","            print('Detecting sample rate and channels failed -> Skipping adjustment')","            tempLeadInFileAdjusted = tempLeadInFile","        else:","            print('Adjust sample rate to {} and channels to {}'.format(detectionInfo['sampleRate'], detectionInfo['channels']))","            subprocess.call([ 'ffmpeg', '-i', tempLeadInFile, '-vn', '-ar', detectionInfo['sampleRate'], '-ac', detectionInfo['channels'], tempLeadInFileAdjusted ])","","        print('Concat')","        # Use ffmpeg Concat demuxer","        with open(tempListFile, 'w') as f:","            f.write(\"file \" + \"'\" + tempLeadInFileAdjusted + \"'\")","            f.write(\"\\n\")","            f.write(\"file \" + \"'\" + inputPath + \"'\")","        subprocess.call([ 'ffmpeg', '-f', 'concat', '-safe', '0', '-i', tempListFile, '-c', 'copy', tempTargetFile ])","        # Copy metadata from input file","        subprocess.call([ 'ffmpeg', '-i', inputPath, '-i', tempTargetFile, '-map', '1', '-c', 'copy', '-map_metadata', '0', outputPath ])","","        os.remove(tempLeadInFile)","        os.remove(tempLeadInFileAdjusted)","        os.remove(tempListFile)","        os.remove(tempTargetFile)","        print('\\n')","","","def detectAudioData(mp3File):","    try:","        output = subprocess.check_output([ 'ffmpeg', '-i', mp3File, '-hide_banner' ], stderr=subprocess.STDOUT)","    except Exception as e:","        output = str(e.output)","","    match = re.match('.*Stream #\\\\d+:\\\\d+: Audio: mp3, (\\\\d+) Hz, (mono|stereo), .*', output, re.S)","    if match:","        return {","            'sampleRate': match.group(1),","            'channels': '2' if match.group(2) == 'stereo' else '1'","        }","    else:","        return None","","","if not os.path.exists(args.output) and not args.dry_run:","    outputParent = os.path.dirname(os.path.abspath(args.output))","    if not os.path.isdir(outputParent):","        fail('Parent of output is no directory: ' + os.path.abspath(outputParent))","","addLeadInMessage(args.input, args.output)"],"stylingDirectives":[[{"start":0,"end":22,"cssClass":"pl-c"}],[],[{"start":0,"end":97,"cssClass":"pl-c"}],[{"start":0,"end":105,"cssClass":"pl-c"}],[],[],[{"start":0,"end":6,"cssClass":"pl-k"},{"start":7,"end":15,"cssClass":"pl-s1"},{"start":17,"end":23,"cssClass":"pl-s1"},{"start":25,"end":29,"cssClass":"pl-s1"},{"start":31,"end":33,"cssClass":"pl-s1"},{"start":35,"end":37,"cssClass":"pl-s1"},{"start":39,"end":49,"cssClass":"pl-s1"},{"start":51,"end":54,"cssClass":"pl-s1"},{"start":56,"end":70,"cssClass":"pl-s1"}],[],[],[{"start":0,"end":12,"cssClass":"pl-s1"},{"start":13,"end":14,"cssClass":"pl-c1"},{"start":15,"end":21,"cssClass":"pl-k"},{"start":22,"end":26,"cssClass":"pl-s1"},{"start":28,"end":36,"cssClass":"pl-s1"},{"start":37,"end":64,"cssClass":"pl-v"},{"start":65,"end":69,"cssClass":"pl-s1"},{"start":71,"end":88,"cssClass":"pl-s1"},{"start":88,"end":89,"cssClass":"pl-c1"},{"start":89,"end":91,"cssClass":"pl-c1"},{"start":93,"end":98,"cssClass":"pl-s1"},{"start":98,"end":99,"cssClass":"pl-c1"},{"start":99,"end":102,"cssClass":"pl-c1"}],[{"start":0,"end":9,"cssClass":"pl-s1"},{"start":10,"end":11,"cssClass":"pl-c1"},{"start":12,"end":26,"cssClass":"pl-s1"},{"start":27,"end":48,"cssClass":"pl-v"}],[{"start":4,"end":15,"cssClass":"pl-s1"},{"start":15,"end":16,"cssClass":"pl-c1"}],[{"start":8,"end":107,"cssClass":"pl-s"},{"start":104,"end":106,"cssClass":"pl-cce"},{"start":108,"end":109,"cssClass":"pl-c1"}],[{"start":8,"end":117,"cssClass":"pl-s"},{"start":112,"end":114,"cssClass":"pl-cce"},{"start":114,"end":116,"cssClass":"pl-cce"},{"start":118,"end":119,"cssClass":"pl-c1"}],[{"start":8,"end":22,"cssClass":"pl-s1"},{"start":23,"end":46,"cssClass":"pl-s1"}],[{"start":4,"end":9,"cssClass":"pl-s1"},{"start":9,"end":10,"cssClass":"pl-c1"},{"start":10,"end":78,"cssClass":"pl-s"}],[{"start":4,"end":19,"cssClass":"pl-s1"},{"start":19,"end":20,"cssClass":"pl-c1"},{"start":20,"end":32,"cssClass":"pl-s1"}],[{"start":0,"end":9,"cssClass":"pl-s1"},{"start":10,"end":22,"cssClass":"pl-en"},{"start":23,"end":27,"cssClass":"pl-s"},{"start":29,"end":38,"cssClass":"pl-s"},{"start":40,"end":44,"cssClass":"pl-s1"},{"start":44,"end":45,"cssClass":"pl-c1"},{"start":45,"end":48,"cssClass":"pl-s1"},{"start":50,"end":58,"cssClass":"pl-s1"},{"start":58,"end":59,"cssClass":"pl-c1"},{"start":59,"end":63,"cssClass":"pl-c1"},{"start":65,"end":69,"cssClass":"pl-s1"},{"start":69,"end":70,"cssClass":"pl-c1"},{"start":70,"end":140,"cssClass":"pl-s"},{"start":124,"end":126,"cssClass":"pl-cce"}],[{"start":0,"end":9,"cssClass":"pl-s1"},{"start":10,"end":22,"cssClass":"pl-en"},{"start":23,"end":27,"cssClass":"pl-s"},{"start":29,"end":39,"cssClass":"pl-s"},{"start":41,"end":45,"cssClass":"pl-s1"},{"start":45,"end":46,"cssClass":"pl-c1"},{"start":46,"end":49,"cssClass":"pl-s1"},{"start":51,"end":59,"cssClass":"pl-s1"},{"start":59,"end":60,"cssClass":"pl-c1"},{"start":60,"end":64,"cssClass":"pl-c1"},{"start":66,"end":70,"cssClass":"pl-s1"},{"start":70,"end":71,"cssClass":"pl-c1"},{"start":71,"end":156,"cssClass":"pl-s"}],[{"start":0,"end":14,"cssClass":"pl-s1"},{"start":15,"end":38,"cssClass":"pl-en"},{"start":39,"end":48,"cssClass":"pl-s1"}],[{"start":0,"end":9,"cssClass":"pl-s1"},{"start":10,"end":22,"cssClass":"pl-en"},{"start":23,"end":37,"cssClass":"pl-s"},{"start":39,"end":43,"cssClass":"pl-s1"},{"start":43,"end":44,"cssClass":"pl-c1"},{"start":44,"end":47,"cssClass":"pl-s1"},{"start":49,"end":56,"cssClass":"pl-s1"},{"start":56,"end":57,"cssClass":"pl-c1"},{"start":57,"end":61,"cssClass":"pl-c1"},{"start":63,"end":67,"cssClass":"pl-s1"},{"start":67,"end":68,"cssClass":"pl-c1"},{"start":68,"end":214,"cssClass":"pl-s"}],[{"start":0,"end":9,"cssClass":"pl-s1"},{"start":10,"end":22,"cssClass":"pl-en"},{"start":23,"end":40,"cssClass":"pl-s"},{"start":42,"end":46,"cssClass":"pl-s1"},{"start":46,"end":47,"cssClass":"pl-c1"},{"start":47,"end":50,"cssClass":"pl-s1"},{"start":52,"end":59,"cssClass":"pl-s1"},{"start":59,"end":60,"cssClass":"pl-c1"},{"start":60,"end":64,"cssClass":"pl-c1"},{"start":66,"end":70,"cssClass":"pl-s1"},{"start":70,"end":71,"cssClass":"pl-c1"},{"start":71,"end":156,"cssClass":"pl-s"},{"start":151,"end":153,"cssClass":"pl-cce"}],[{"start":0,"end":9,"cssClass":"pl-s1"},{"start":10,"end":22,"cssClass":"pl-en"},{"start":23,"end":40,"cssClass":"pl-s"},{"start":42,"end":48,"cssClass":"pl-s1"},{"start":48,"end":49,"cssClass":"pl-c1"},{"start":49,"end":61,"cssClass":"pl-s"},{"start":63,"end":67,"cssClass":"pl-s1"},{"start":67,"end":68,"cssClass":"pl-c1"},{"start":68,"end":151,"cssClass":"pl-s"}],[{"start":0,"end":9,"cssClass":"pl-s1"},{"start":10,"end":22,"cssClass":"pl-en"},{"start":23,"end":34,"cssClass":"pl-s"},{"start":36,"end":42,"cssClass":"pl-s1"},{"start":42,"end":43,"cssClass":"pl-c1"},{"start":43,"end":55,"cssClass":"pl-s"},{"start":57,"end":61,"cssClass":"pl-s1"},{"start":61,"end":62,"cssClass":"pl-c1"},{"start":62,"end":142,"cssClass":"pl-s"}],[{"start":0,"end":4,"cssClass":"pl-s1"},{"start":5,"end":6,"cssClass":"pl-c1"},{"start":7,"end":16,"cssClass":"pl-s1"},{"start":17,"end":27,"cssClass":"pl-en"}],[],[{"start":0,"end":14,"cssClass":"pl-s1"},{"start":15,"end":24,"cssClass":"pl-en"},{"start":25,"end":34,"cssClass":"pl-s1"},{"start":36,"end":40,"cssClass":"pl-s1"}],[],[{"start":0,"end":9,"cssClass":"pl-s1"},{"start":10,"end":11,"cssClass":"pl-c1"},{"start":12,"end":14,"cssClass":"pl-s1"},{"start":15,"end":22,"cssClass":"pl-en"},{"start":23,"end":27,"cssClass":"pl-s1"},{"start":28,"end":38,"cssClass":"pl-s1"},{"start":39,"end":41,"cssClass":"pl-k"},{"start":42,"end":46,"cssClass":"pl-s1"},{"start":47,"end":57,"cssClass":"pl-s1"},{"start":58,"end":60,"cssClass":"pl-c1"},{"start":61,"end":64,"cssClass":"pl-c1"},{"start":65,"end":69,"cssClass":"pl-c1"},{"start":70,"end":74,"cssClass":"pl-k"},{"start":75,"end":85,"cssClass":"pl-s"},{"start":76,"end":78,"cssClass":"pl-cce"}],[{"start":0,"end":12,"cssClass":"pl-s1"},{"start":13,"end":14,"cssClass":"pl-c1"},{"start":15,"end":19,"cssClass":"pl-s1"},{"start":20,"end":33,"cssClass":"pl-s1"},{"start":34,"end":36,"cssClass":"pl-k"},{"start":37,"end":41,"cssClass":"pl-s1"},{"start":42,"end":55,"cssClass":"pl-s1"},{"start":56,"end":58,"cssClass":"pl-c1"},{"start":59,"end":62,"cssClass":"pl-c1"},{"start":63,"end":67,"cssClass":"pl-c1"},{"start":68,"end":72,"cssClass":"pl-k"},{"start":73,"end":78,"cssClass":"pl-s"},{"start":74,"end":76,"cssClass":"pl-cce"}],[],[{"start":0,"end":12,"cssClass":"pl-s1"},{"start":13,"end":14,"cssClass":"pl-c1"},{"start":15,"end":16,"cssClass":"pl-c1"}],[],[],[{"start":0,"end":3,"cssClass":"pl-k"},{"start":4,"end":8,"cssClass":"pl-en"},{"start":9,"end":12,"cssClass":"pl-s1"}],[{"start":4,"end":9,"cssClass":"pl-en"},{"start":10,"end":19,"cssClass":"pl-s"},{"start":20,"end":21,"cssClass":"pl-c1"},{"start":22,"end":25,"cssClass":"pl-s1"}],[{"start":4,"end":7,"cssClass":"pl-s1"},{"start":8,"end":12,"cssClass":"pl-en"},{"start":13,"end":14,"cssClass":"pl-c1"}],[],[],[{"start":0,"end":3,"cssClass":"pl-k"},{"start":4,"end":20,"cssClass":"pl-en"},{"start":21,"end":30,"cssClass":"pl-s1"},{"start":32,"end":42,"cssClass":"pl-s1"}],[{"start":4,"end":10,"cssClass":"pl-k"},{"start":11,"end":23,"cssClass":"pl-s1"}],[],[{"start":4,"end":6,"cssClass":"pl-k"},{"start":7,"end":10,"cssClass":"pl-c1"},{"start":11,"end":13,"cssClass":"pl-s1"},{"start":14,"end":18,"cssClass":"pl-s1"},{"start":19,"end":25,"cssClass":"pl-en"},{"start":26,"end":35,"cssClass":"pl-s1"}],[{"start":8,"end":12,"cssClass":"pl-en"},{"start":13,"end":37,"cssClass":"pl-s"},{"start":38,"end":39,"cssClass":"pl-c1"},{"start":40,"end":42,"cssClass":"pl-s1"},{"start":43,"end":47,"cssClass":"pl-s1"},{"start":48,"end":55,"cssClass":"pl-en"},{"start":56,"end":65,"cssClass":"pl-s1"}],[],[{"start":4,"end":6,"cssClass":"pl-k"},{"start":7,"end":9,"cssClass":"pl-s1"},{"start":10,"end":14,"cssClass":"pl-s1"},{"start":15,"end":20,"cssClass":"pl-en"},{"start":21,"end":30,"cssClass":"pl-s1"}],[{"start":8,"end":10,"cssClass":"pl-k"},{"start":11,"end":13,"cssClass":"pl-s1"},{"start":14,"end":18,"cssClass":"pl-s1"},{"start":19,"end":25,"cssClass":"pl-en"},{"start":26,"end":36,"cssClass":"pl-s1"}],[{"start":12,"end":14,"cssClass":"pl-k"},{"start":15,"end":18,"cssClass":"pl-c1"},{"start":19,"end":21,"cssClass":"pl-s1"},{"start":22,"end":26,"cssClass":"pl-s1"},{"start":27,"end":32,"cssClass":"pl-en"},{"start":33,"end":43,"cssClass":"pl-s1"}],[{"start":16,"end":20,"cssClass":"pl-en"},{"start":21,"end":64,"cssClass":"pl-s"},{"start":58,"end":60,"cssClass":"pl-cce"},{"start":65,"end":66,"cssClass":"pl-c1"},{"start":67,"end":69,"cssClass":"pl-s1"},{"start":70,"end":74,"cssClass":"pl-s1"},{"start":75,"end":82,"cssClass":"pl-en"},{"start":83,"end":93,"cssClass":"pl-s1"}],[{"start":8,"end":12,"cssClass":"pl-k"},{"start":13,"end":16,"cssClass":"pl-c1"},{"start":17,"end":21,"cssClass":"pl-s1"},{"start":22,"end":29,"cssClass":"pl-s1"}],[{"start":12,"end":14,"cssClass":"pl-s1"},{"start":15,"end":20,"cssClass":"pl-en"},{"start":21,"end":31,"cssClass":"pl-s1"}],[],[{"start":8,"end":20,"cssClass":"pl-s1"},{"start":21,"end":22,"cssClass":"pl-c1"},{"start":23,"end":24,"cssClass":"pl-c1"}],[{"start":8,"end":11,"cssClass":"pl-k"},{"start":12,"end":17,"cssClass":"pl-s1"},{"start":18,"end":20,"cssClass":"pl-c1"},{"start":21,"end":27,"cssClass":"pl-en"},{"start":28,"end":30,"cssClass":"pl-s1"},{"start":31,"end":38,"cssClass":"pl-en"},{"start":39,"end":48,"cssClass":"pl-s1"}],[{"start":12,"end":28,"cssClass":"pl-en"},{"start":29,"end":31,"cssClass":"pl-s1"},{"start":32,"end":36,"cssClass":"pl-s1"},{"start":37,"end":41,"cssClass":"pl-en"},{"start":42,"end":51,"cssClass":"pl-s1"},{"start":53,"end":58,"cssClass":"pl-s1"},{"start":61,"end":63,"cssClass":"pl-s1"},{"start":64,"end":68,"cssClass":"pl-s1"},{"start":69,"end":73,"cssClass":"pl-en"},{"start":74,"end":84,"cssClass":"pl-s1"},{"start":86,"end":91,"cssClass":"pl-s1"}],[],[{"start":8,"end":14,"cssClass":"pl-k"}],[],[{"start":4,"end":22,"cssClass":"pl-s1"},{"start":23,"end":24,"cssClass":"pl-c1"},{"start":25,"end":27,"cssClass":"pl-s1"},{"start":28,"end":32,"cssClass":"pl-s1"},{"start":33,"end":41,"cssClass":"pl-en"},{"start":42,"end":44,"cssClass":"pl-s1"},{"start":45,"end":49,"cssClass":"pl-s1"},{"start":50,"end":58,"cssClass":"pl-en"},{"start":59,"end":68,"cssClass":"pl-s1"}],[{"start":4,"end":17,"cssClass":"pl-s1"},{"start":18,"end":19,"cssClass":"pl-c1"},{"start":20,"end":38,"cssClass":"pl-s1"},{"start":39,"end":40,"cssClass":"pl-c1"}],[{"start":4,"end":16,"cssClass":"pl-s1"},{"start":17,"end":18,"cssClass":"pl-c1"},{"start":19,"end":37,"cssClass":"pl-s1"},{"start":38,"end":39,"cssClass":"pl-c1"},{"start":41,"end":46,"cssClass":"pl-en"}],[],[{"start":4,"end":6,"cssClass":"pl-k"},{"start":7,"end":19,"cssClass":"pl-s1"},{"start":20,"end":22,"cssClass":"pl-c1"},{"start":23,"end":29,"cssClass":"pl-s"}],[{"start":8,"end":13,"cssClass":"pl-en"},{"start":14,"end":41,"cssClass":"pl-s"},{"start":42,"end":48,"cssClass":"pl-en"},{"start":49,"end":51,"cssClass":"pl-s1"},{"start":52,"end":56,"cssClass":"pl-s1"},{"start":57,"end":64,"cssClass":"pl-en"},{"start":65,"end":74,"cssClass":"pl-s1"}],[{"start":8,"end":14,"cssClass":"pl-k"}],[],[{"start":4,"end":6,"cssClass":"pl-k"},{"start":7,"end":11,"cssClass":"pl-s1"},{"start":12,"end":25,"cssClass":"pl-s1"}],[{"start":8,"end":23,"cssClass":"pl-s1"},{"start":24,"end":25,"cssClass":"pl-c1"},{"start":26,"end":28,"cssClass":"pl-s1"},{"start":29,"end":33,"cssClass":"pl-s1"},{"start":34,"end":39,"cssClass":"pl-en"},{"start":40,"end":50,"cssClass":"pl-s1"}],[{"start":8,"end":18,"cssClass":"pl-s1"},{"start":19,"end":20,"cssClass":"pl-c1"},{"start":21,"end":23,"cssClass":"pl-s1"},{"start":24,"end":28,"cssClass":"pl-s1"},{"start":29,"end":33,"cssClass":"pl-en"},{"start":34,"end":49,"cssClass":"pl-s1"},{"start":50,"end":51,"cssClass":"pl-c1"},{"start":54,"end":65,"cssClass":"pl-s"},{"start":66,"end":72,"cssClass":"pl-en"},{"start":73,"end":85,"cssClass":"pl-s1"},{"start":86,"end":87,"cssClass":"pl-c1"},{"start":88,"end":89,"cssClass":"pl-c1"},{"start":91,"end":106,"cssClass":"pl-s1"},{"start":107,"end":108,"cssClass":"pl-c1"}],[{"start":8,"end":20,"cssClass":"pl-s1"},{"start":21,"end":23,"cssClass":"pl-c1"},{"start":24,"end":25,"cssClass":"pl-c1"}],[],[{"start":4,"end":6,"cssClass":"pl-k"},{"start":7,"end":9,"cssClass":"pl-s1"},{"start":10,"end":14,"cssClass":"pl-s1"},{"start":15,"end":21,"cssClass":"pl-en"},{"start":22,"end":32,"cssClass":"pl-s1"}],[{"start":8,"end":13,"cssClass":"pl-en"},{"start":14,"end":49,"cssClass":"pl-s"},{"start":50,"end":56,"cssClass":"pl-en"},{"start":57,"end":59,"cssClass":"pl-s1"},{"start":60,"end":64,"cssClass":"pl-s1"},{"start":65,"end":72,"cssClass":"pl-en"},{"start":73,"end":83,"cssClass":"pl-s1"}],[{"start":8,"end":14,"cssClass":"pl-k"}],[],[{"start":4,"end":8,"cssClass":"pl-s1"},{"start":9,"end":10,"cssClass":"pl-c1"},{"start":11,"end":13,"cssClass":"pl-s1"},{"start":14,"end":17,"cssClass":"pl-en"},{"start":18,"end":27,"cssClass":"pl-s1"},{"start":29,"end":41,"cssClass":"pl-s1"},{"start":43,"end":56,"cssClass":"pl-s1"},{"start":58,"end":65,"cssClass":"pl-en"},{"start":66,"end":69,"cssClass":"pl-s"},{"start":71,"end":74,"cssClass":"pl-s"},{"start":76,"end":81,"cssClass":"pl-en"}],[{"start":4,"end":9,"cssClass":"pl-en"},{"start":10,"end":37,"cssClass":"pl-s"},{"start":38,"end":44,"cssClass":"pl-en"},{"start":45,"end":49,"cssClass":"pl-s1"},{"start":51,"end":53,"cssClass":"pl-s1"},{"start":54,"end":58,"cssClass":"pl-s1"},{"start":59,"end":66,"cssClass":"pl-en"},{"start":67,"end":77,"cssClass":"pl-s1"}],[],[{"start":4,"end":6,"cssClass":"pl-k"},{"start":7,"end":10,"cssClass":"pl-c1"},{"start":11,"end":15,"cssClass":"pl-s1"},{"start":16,"end":23,"cssClass":"pl-s1"}],[{"start":8,"end":22,"cssClass":"pl-s1"},{"start":23,"end":24,"cssClass":"pl-c1"},{"start":25,"end":43,"cssClass":"pl-s"}],[{"start":8,"end":30,"cssClass":"pl-s1"},{"start":31,"end":32,"cssClass":"pl-c1"},{"start":33,"end":60,"cssClass":"pl-s"}],[{"start":8,"end":20,"cssClass":"pl-s1"},{"start":21,"end":22,"cssClass":"pl-c1"},{"start":23,"end":38,"cssClass":"pl-s"}],[{"start":8,"end":22,"cssClass":"pl-s1"},{"start":23,"end":24,"cssClass":"pl-c1"},{"start":25,"end":42,"cssClass":"pl-s"}],[{"start":8,"end":22,"cssClass":"pl-s1"},{"start":23,"end":44,"cssClass":"pl-en"},{"start":45,"end":49,"cssClass":"pl-s1"},{"start":49,"end":50,"cssClass":"pl-c1"},{"start":50,"end":54,"cssClass":"pl-s1"},{"start":56,"end":66,"cssClass":"pl-s1"},{"start":66,"end":67,"cssClass":"pl-c1"},{"start":67,"end":81,"cssClass":"pl-s1"},{"start":83,"end":87,"cssClass":"pl-s1"},{"start":87,"end":88,"cssClass":"pl-c1"},{"start":88,"end":92,"cssClass":"pl-s1"}],[],[{"start":8,"end":44,"cssClass":"pl-c"}],[{"start":8,"end":13,"cssClass":"pl-en"},{"start":14,"end":50,"cssClass":"pl-s"}],[{"start":8,"end":21,"cssClass":"pl-s1"},{"start":22,"end":23,"cssClass":"pl-c1"},{"start":24,"end":39,"cssClass":"pl-en"},{"start":40,"end":49,"cssClass":"pl-s1"}],[{"start":8,"end":10,"cssClass":"pl-k"},{"start":11,"end":24,"cssClass":"pl-s1"},{"start":25,"end":27,"cssClass":"pl-c1"},{"start":28,"end":32,"cssClass":"pl-c1"}],[{"start":12,"end":29,"cssClass":"pl-c"}],[{"start":12,"end":17,"cssClass":"pl-en"},{"start":18,"end":84,"cssClass":"pl-s"}],[{"start":12,"end":34,"cssClass":"pl-s1"},{"start":35,"end":36,"cssClass":"pl-c1"},{"start":37,"end":51,"cssClass":"pl-s1"}],[{"start":8,"end":12,"cssClass":"pl-k"}],[{"start":12,"end":17,"cssClass":"pl-en"},{"start":18,"end":63,"cssClass":"pl-s"},{"start":64,"end":70,"cssClass":"pl-en"},{"start":71,"end":84,"cssClass":"pl-s1"},{"start":85,"end":97,"cssClass":"pl-s"},{"start":100,"end":113,"cssClass":"pl-s1"},{"start":114,"end":124,"cssClass":"pl-s"}],[{"start":12,"end":22,"cssClass":"pl-s1"},{"start":23,"end":27,"cssClass":"pl-en"},{"start":30,"end":38,"cssClass":"pl-s"},{"start":40,"end":44,"cssClass":"pl-s"},{"start":46,"end":60,"cssClass":"pl-s1"},{"start":62,"end":67,"cssClass":"pl-s"},{"start":69,"end":74,"cssClass":"pl-s"},{"start":76,"end":89,"cssClass":"pl-s1"},{"start":90,"end":102,"cssClass":"pl-s"},{"start":105,"end":110,"cssClass":"pl-s"},{"start":112,"end":125,"cssClass":"pl-s1"},{"start":126,"end":136,"cssClass":"pl-s"},{"start":139,"end":161,"cssClass":"pl-s1"}],[],[{"start":8,"end":13,"cssClass":"pl-en"},{"start":14,"end":22,"cssClass":"pl-s"}],[{"start":8,"end":35,"cssClass":"pl-c"}],[{"start":8,"end":12,"cssClass":"pl-k"},{"start":13,"end":17,"cssClass":"pl-en"},{"start":18,"end":30,"cssClass":"pl-s1"},{"start":32,"end":35,"cssClass":"pl-s"},{"start":37,"end":39,"cssClass":"pl-k"},{"start":40,"end":41,"cssClass":"pl-s1"}],[{"start":12,"end":13,"cssClass":"pl-s1"},{"start":14,"end":19,"cssClass":"pl-en"},{"start":20,"end":27,"cssClass":"pl-s"},{"start":28,"end":29,"cssClass":"pl-c1"},{"start":30,"end":33,"cssClass":"pl-s"},{"start":34,"end":35,"cssClass":"pl-c1"},{"start":36,"end":58,"cssClass":"pl-s1"},{"start":59,"end":60,"cssClass":"pl-c1"},{"start":61,"end":64,"cssClass":"pl-s"}],[{"start":12,"end":13,"cssClass":"pl-s1"},{"start":14,"end":19,"cssClass":"pl-en"},{"start":20,"end":24,"cssClass":"pl-s"},{"start":21,"end":23,"cssClass":"pl-cce"}],[{"start":12,"end":13,"cssClass":"pl-s1"},{"start":14,"end":19,"cssClass":"pl-en"},{"start":20,"end":27,"cssClass":"pl-s"},{"start":28,"end":29,"cssClass":"pl-c1"},{"start":30,"end":33,"cssClass":"pl-s"},{"start":34,"end":35,"cssClass":"pl-c1"},{"start":36,"end":45,"cssClass":"pl-s1"},{"start":46,"end":47,"cssClass":"pl-c1"},{"start":48,"end":51,"cssClass":"pl-s"}],[{"start":8,"end":18,"cssClass":"pl-s1"},{"start":19,"end":23,"cssClass":"pl-en"},{"start":26,"end":34,"cssClass":"pl-s"},{"start":36,"end":40,"cssClass":"pl-s"},{"start":42,"end":50,"cssClass":"pl-s"},{"start":52,"end":59,"cssClass":"pl-s"},{"start":61,"end":64,"cssClass":"pl-s"},{"start":66,"end":70,"cssClass":"pl-s"},{"start":72,"end":84,"cssClass":"pl-s1"},{"start":86,"end":90,"cssClass":"pl-s"},{"start":92,"end":98,"cssClass":"pl-s"},{"start":100,"end":114,"cssClass":"pl-s1"}],[{"start":8,"end":39,"cssClass":"pl-c"}],[{"start":8,"end":18,"cssClass":"pl-s1"},{"start":19,"end":23,"cssClass":"pl-en"},{"start":26,"end":34,"cssClass":"pl-s"},{"start":36,"end":40,"cssClass":"pl-s"},{"start":42,"end":51,"cssClass":"pl-s1"},{"start":53,"end":57,"cssClass":"pl-s"},{"start":59,"end":73,"cssClass":"pl-s1"},{"start":75,"end":81,"cssClass":"pl-s"},{"start":83,"end":86,"cssClass":"pl-s"},{"start":88,"end":92,"cssClass":"pl-s"},{"start":94,"end":100,"cssClass":"pl-s"},{"start":102,"end":117,"cssClass":"pl-s"},{"start":119,"end":122,"cssClass":"pl-s"},{"start":124,"end":134,"cssClass":"pl-s1"}],[],[{"start":8,"end":10,"cssClass":"pl-s1"},{"start":11,"end":17,"cssClass":"pl-en"},{"start":18,"end":32,"cssClass":"pl-s1"}],[{"start":8,"end":10,"cssClass":"pl-s1"},{"start":11,"end":17,"cssClass":"pl-en"},{"start":18,"end":40,"cssClass":"pl-s1"}],[{"start":8,"end":10,"cssClass":"pl-s1"},{"start":11,"end":17,"cssClass":"pl-en"},{"start":18,"end":30,"cssClass":"pl-s1"}],[{"start":8,"end":10,"cssClass":"pl-s1"},{"start":11,"end":17,"cssClass":"pl-en"},{"start":18,"end":32,"cssClass":"pl-s1"}],[{"start":8,"end":13,"cssClass":"pl-en"},{"start":14,"end":18,"cssClass":"pl-s"},{"start":15,"end":17,"cssClass":"pl-cce"}],[],[],[{"start":0,"end":3,"cssClass":"pl-k"},{"start":4,"end":19,"cssClass":"pl-en"},{"start":20,"end":27,"cssClass":"pl-s1"}],[{"start":4,"end":7,"cssClass":"pl-k"}],[{"start":8,"end":14,"cssClass":"pl-s1"},{"start":15,"end":16,"cssClass":"pl-c1"},{"start":17,"end":27,"cssClass":"pl-s1"},{"start":28,"end":40,"cssClass":"pl-en"},{"start":43,"end":51,"cssClass":"pl-s"},{"start":53,"end":57,"cssClass":"pl-s"},{"start":59,"end":66,"cssClass":"pl-s1"},{"start":68,"end":82,"cssClass":"pl-s"},{"start":86,"end":92,"cssClass":"pl-s1"},{"start":92,"end":93,"cssClass":"pl-c1"},{"start":93,"end":103,"cssClass":"pl-s1"},{"start":104,"end":110,"cssClass":"pl-v"}],[{"start":4,"end":10,"cssClass":"pl-k"},{"start":11,"end":20,"cssClass":"pl-v"},{"start":21,"end":23,"cssClass":"pl-k"},{"start":24,"end":25,"cssClass":"pl-s1"}],[{"start":8,"end":14,"cssClass":"pl-s1"},{"start":15,"end":16,"cssClass":"pl-c1"},{"start":17,"end":20,"cssClass":"pl-en"},{"start":21,"end":22,"cssClass":"pl-s1"},{"start":23,"end":29,"cssClass":"pl-s1"}],[],[{"start":4,"end":9,"cssClass":"pl-s1"},{"start":10,"end":11,"cssClass":"pl-c1"},{"start":12,"end":14,"cssClass":"pl-s1"},{"start":15,"end":20,"cssClass":"pl-en"},{"start":21,"end":84,"cssClass":"pl-s"},{"start":32,"end":34,"cssClass":"pl-cce"},{"start":37,"end":39,"cssClass":"pl-cce"},{"start":56,"end":58,"cssClass":"pl-cce"},{"start":86,"end":92,"cssClass":"pl-s1"},{"start":94,"end":96,"cssClass":"pl-s1"},{"start":97,"end":98,"cssClass":"pl-v"}],[{"start":4,"end":6,"cssClass":"pl-k"},{"start":7,"end":12,"cssClass":"pl-s1"}],[{"start":8,"end":14,"cssClass":"pl-k"}],[{"start":12,"end":24,"cssClass":"pl-s"},{"start":26,"end":31,"cssClass":"pl-s1"},{"start":32,"end":37,"cssClass":"pl-en"},{"start":38,"end":39,"cssClass":"pl-c1"}],[{"start":12,"end":22,"cssClass":"pl-s"},{"start":24,"end":27,"cssClass":"pl-s"},{"start":28,"end":30,"cssClass":"pl-k"},{"start":31,"end":36,"cssClass":"pl-s1"},{"start":37,"end":42,"cssClass":"pl-en"},{"start":43,"end":44,"cssClass":"pl-c1"},{"start":46,"end":48,"cssClass":"pl-c1"},{"start":49,"end":57,"cssClass":"pl-s"},{"start":58,"end":62,"cssClass":"pl-k"},{"start":63,"end":66,"cssClass":"pl-s"}],[],[{"start":4,"end":8,"cssClass":"pl-k"}],[{"start":8,"end":14,"cssClass":"pl-k"},{"start":15,"end":19,"cssClass":"pl-c1"}],[],[],[{"start":0,"end":2,"cssClass":"pl-k"},{"start":3,"end":6,"cssClass":"pl-c1"},{"start":7,"end":9,"cssClass":"pl-s1"},{"start":10,"end":14,"cssClass":"pl-s1"},{"start":15,"end":21,"cssClass":"pl-en"},{"start":22,"end":26,"cssClass":"pl-s1"},{"start":27,"end":33,"cssClass":"pl-s1"},{"start":35,"end":38,"cssClass":"pl-c1"},{"start":39,"end":42,"cssClass":"pl-c1"},{"start":43,"end":47,"cssClass":"pl-s1"},{"start":48,"end":55,"cssClass":"pl-s1"}],[{"start":4,"end":16,"cssClass":"pl-s1"},{"start":17,"end":18,"cssClass":"pl-c1"},{"start":19,"end":21,"cssClass":"pl-s1"},{"start":22,"end":26,"cssClass":"pl-s1"},{"start":27,"end":34,"cssClass":"pl-en"},{"start":35,"end":37,"cssClass":"pl-s1"},{"start":38,"end":42,"cssClass":"pl-s1"},{"start":43,"end":50,"cssClass":"pl-en"},{"start":51,"end":55,"cssClass":"pl-s1"},{"start":56,"end":62,"cssClass":"pl-s1"}],[{"start":4,"end":6,"cssClass":"pl-k"},{"start":7,"end":10,"cssClass":"pl-c1"},{"start":11,"end":13,"cssClass":"pl-s1"},{"start":14,"end":18,"cssClass":"pl-s1"},{"start":19,"end":24,"cssClass":"pl-en"},{"start":25,"end":37,"cssClass":"pl-s1"}],[{"start":8,"end":12,"cssClass":"pl-en"},{"start":13,"end":49,"cssClass":"pl-s"},{"start":50,"end":51,"cssClass":"pl-c1"},{"start":52,"end":54,"cssClass":"pl-s1"},{"start":55,"end":59,"cssClass":"pl-s1"},{"start":60,"end":67,"cssClass":"pl-en"},{"start":68,"end":80,"cssClass":"pl-s1"}],[],[{"start":0,"end":16,"cssClass":"pl-en"},{"start":17,"end":21,"cssClass":"pl-s1"},{"start":22,"end":27,"cssClass":"pl-s1"},{"start":29,"end":33,"cssClass":"pl-s1"},{"start":34,"end":40,"cssClass":"pl-s1"}]],"csv":null,"csvError":null,"dependabotInfo":{"showConfigurationBanner":false,"configFilePath":null,"networkDependabotPath":"/seisfeld/TonUINO/network/updates","dismissConfigurationNoticePath":"/settings/dismiss-notice/dependabot_configuration_notice","configurationNoticeDismissed":null,"repoAlertsPath":"/seisfeld/TonUINO/security/dependabot","repoSecurityAndAnalysisPath":"/seisfeld/TonUINO/settings/security_analysis","repoOwnerIsOrg":false,"currentUserCanAdminRepo":false},"displayName":"add_lead_in_messages.py","displayUrl":"https://github.com/seisfeld/TonUINO/blob/master/tools/add_lead_in_messages.py?raw=true","headerInfo":{"blobSize":"5.97 KB","deleteInfo":{"deleteTooltip":"You must be signed in to make or propose changes"},"editInfo":{"editTooltip":"You must be signed in to make or propose changes"},"ghDesktopPath":"https://desktop.github.com","gitLfsPath":null,"onBranch":true,"shortPath":"396ae7b","siteNavLoginPath":"/login?return_to=https%3A%2F%2Fgithub.com%2Fseisfeld%2FTonUINO%2Fblob%2Fmaster%2Ftools%2Fadd_lead_in_messages.py","isCSV":false,"isRichtext":false,"toc":null,"lineInfo":{"truncatedLoc":"135","truncatedSloc":"104"},"mode":"executable file"},"image":false,"isCodeownersFile":null,"isPlain":false,"isValidLegacyIssueTemplate":false,"issueTemplateHelpUrl":"https://docs.github.com/articles/about-issue-and-pull-request-templates","issueTemplate":null,"discussionTemplate":null,"language":"Python","languageID":303,"large":false,"loggedIn":false,"newDiscussionPath":"/seisfeld/TonUINO/discussions/new","newIssuePath":"/seisfeld/TonUINO/issues/new","planSupportInfo":{"repoIsFork":null,"repoOwnedByCurrentUser":null,"requestFullPath":"/seisfeld/TonUINO/blob/master/tools/add_lead_in_messages.py","showFreeOrgGatedFeatureMessage":null,"showPlanSupportBanner":null,"upgradeDataAttributes":null,"upgradePath":null},"publishBannersInfo":{"dismissActionNoticePath":"/settings/dismiss-notice/publish_action_from_dockerfile","releasePath":"/seisfeld/TonUINO/releases/new?marketplace=true","showPublishActionBanner":false},"rawBlobUrl":"https://github.com/seisfeld/TonUINO/raw/master/tools/add_lead_in_messages.py","renderImageOrRaw":false,"richText":null,"renderedFileInfo":null,"shortPath":null,"symbolsEnabled":true,"tabSize":8,"topBannersInfo":{"overridingGlobalFundingFile":false,"globalPreferredFundingPath":null,"repoOwner":"seisfeld","repoName":"TonUINO","showInvalidCitationWarning":false,"citationHelpUrl":"https://docs.github.com/github/creating-cloning-and-archiving-repositories/creating-a-repository-on-github/about-citation-files","showDependabotConfigurationBanner":false,"actionsOnboardingTip":null},"truncated":false,"viewable":true,"workflowRedirectUrl":null,"symbols":{"timed_out":false,"not_analyzed":false,"symbols":[{"name":"argFormatter","kind":"constant","ident_start":303,"ident_end":315,"extent_start":303,"extent_end":406,"fully_qualified_name":"argFormatter","ident_utf16":{"start":{"line_number":9,"utf16_col":0},"end":{"line_number":9,"utf16_col":12}},"extent_utf16":{"start":{"line_number":9,"utf16_col":0},"end":{"line_number":9,"utf16_col":103}}},{"name":"argparser","kind":"constant","ident_start":407,"ident_end":416,"extent_start":407,"extent_end":865,"fully_qualified_name":"argparser","ident_utf16":{"start":{"line_number":10,"utf16_col":0},"end":{"line_number":10,"utf16_col":9}},"extent_utf16":{"start":{"line_number":10,"utf16_col":0},"end":{"line_number":16,"utf16_col":33}}},{"name":"args","kind":"constant","ident_start":1887,"ident_end":1891,"extent_start":1887,"extent_end":1916,"fully_qualified_name":"args","ident_utf16":{"start":{"line_number":24,"utf16_col":0},"end":{"line_number":24,"utf16_col":4}},"extent_utf16":{"start":{"line_number":24,"utf16_col":0},"end":{"line_number":24,"utf16_col":29}}},{"name":"fileRegex","kind":"constant","ident_start":1961,"ident_end":1970,"extent_start":1961,"extent_end":2047,"fully_qualified_name":"fileRegex","ident_utf16":{"start":{"line_number":28,"utf16_col":0},"end":{"line_number":28,"utf16_col":9}},"extent_utf16":{"start":{"line_number":28,"utf16_col":0},"end":{"line_number":28,"utf16_col":86}}},{"name":"titlePattern","kind":"constant","ident_start":2048,"ident_end":2060,"extent_start":2048,"extent_end":2126,"fully_qualified_name":"titlePattern","ident_utf16":{"start":{"line_number":29,"utf16_col":0},"end":{"line_number":29,"utf16_col":12}},"extent_utf16":{"start":{"line_number":29,"utf16_col":0},"end":{"line_number":29,"utf16_col":78}}},{"name":"mp3FileIndex","kind":"constant","ident_start":2128,"ident_end":2140,"extent_start":2128,"extent_end":2144,"fully_qualified_name":"mp3FileIndex","ident_utf16":{"start":{"line_number":31,"utf16_col":0},"end":{"line_number":31,"utf16_col":12}},"extent_utf16":{"start":{"line_number":31,"utf16_col":0},"end":{"line_number":31,"utf16_col":16}}},{"name":"fail","kind":"function","ident_start":2151,"ident_end":2155,"extent_start":2147,"extent_end":2204,"fully_qualified_name":"fail","ident_utf16":{"start":{"line_number":34,"utf16_col":4},"end":{"line_number":34,"utf16_col":8}},"extent_utf16":{"start":{"line_number":34,"utf16_col":0},"end":{"line_number":36,"utf16_col":15}}},{"name":"addLeadInMessage","kind":"function","ident_start":2211,"ident_end":2227,"extent_start":2207,"extent_end":5332,"fully_qualified_name":"addLeadInMessage","ident_utf16":{"start":{"line_number":39,"utf16_col":4},"end":{"line_number":39,"utf16_col":20}},"extent_utf16":{"start":{"line_number":39,"utf16_col":0},"end":{"line_number":110,"utf16_col":19}}},{"name":"detectAudioData","kind":"function","ident_start":5339,"ident_end":5354,"extent_start":5335,"extent_end":5824,"fully_qualified_name":"detectAudioData","ident_utf16":{"start":{"line_number":113,"utf16_col":4},"end":{"line_number":113,"utf16_col":19}},"extent_utf16":{"start":{"line_number":113,"utf16_col":0},"end":{"line_number":126,"utf16_col":19}}}]}},"copilotInfo":null,"copilotAccessAllowed":false,"csrf_tokens":{"/seisfeld/TonUINO/branches":{"post":"JxMi3ugIieqpjTO_pFB9Eb-7zL4MBqfcP9Iih1dYdTyAtaclev4BjIEU9JVC5GBagWQA4jAep1Wf0tHi8QUnKA"},"/repos/preferences":{"post":"L4E1rW0cIv7Qca5545wCLu1NMxVApHUHprP5kBG1m--sjchzgNPtoE5I7IjC-7nALmqRMkinSO7rOszRCFET2Q"}}},"title":"TonUINO/tools/add_lead_in_messages.py at master · seisfeld/TonUINO"}
                                      ^^^^^
NameError: name 'false' is not defined. Did you mean: 'False'?
MacBook-Pro-2:tools Benutzername$ 

In dem Fall würde ich false mal durch False ersetzen. das könnte helfen.
Aber eigentlich gibt es kein false in add_lead_in_messages.py

Hallo zusammen,

mege cooles Tool - danke schonmal.
Ich habs auch mit einzelnen zusammengebracht - zumindest, dass ich eine einezelne neue Datei mit Ansage bekommen. Das klappt ja schon mal.

Beim einzelnen Dateien zickt er immer rum und jammert, dass er die Temporäre Datei nicht finden und diese nicht löschen kann.

[out#0/mp3 @ 0000021366e4d300] video:0KiB audio:11789KiB subtitle:0KiB other streams:0KiB global headers:0KiB muxing overhead: 0.003827%
size=   11790KiB time=00:12:38.79 bitrate= 127.3kbits/s speed=7.8e+03x
Traceback (most recent call last):
  File "D:\Stefan\Tonuino\MP3\01_Neuer Modus\tools\add_lead_in_messages.py", line 135, in <module>
    addLeadInMessage(args.input, args.output)
  File "D:\Stefan\Tonuino\MP3\01_Neuer Modus\tools\add_lead_in_messages.py", line 108, in addLeadInMessage
    os.remove(tempLeadInFileAdjusted)
FileNotFoundError: [WinError 2] Das System kann die angegebene Datei nicht finden: 'temp-lead-in.mp3'

Und ich denk mir nur so „ja, die gibts auch nicht, die heißt temp-target.mp3“ O_O

Er überschreibts mit auch nicht und erstellt nur die Ansage - 4 Sekunden - aus.

  1. Thema
    Wenn ich das aber für einen Ordner mit 2 Dateien ausprobiere, macht das ding einfach „irgendwas“.
PS D:\Stefan\Tonuino\MP3\01_Neuer Modus> python .\tools\add_lead_in_messages.py -i '.\test\' -o '.\test\Ansagen\' --use-google-key KEY
Traceback (most recent call last):
  File "D:\Stefan\Tonuino\MP3\01_Neuer Modus\tools\add_lead_in_messages.py", line 135, in <module>
    addLeadInMessage(args.input, args.output)
  File "D:\Stefan\Tonuino\MP3\01_Neuer Modus\tools\add_lead_in_messages.py", line 55, in addLeadInMessage
    addLeadInMessage(os.path.join(inputPath, child), os.path.join(outputPath, child))
  File "D:\Stefan\Tonuino\MP3\01_Neuer Modus\tools\add_lead_in_messages.py", line 55, in addLeadInMessage
    addLeadInMessage(os.path.join(inputPath, child), os.path.join(outputPath, child))
  File "D:\Stefan\Tonuino\MP3\01_Neuer Modus\tools\add_lead_in_messages.py", line 55, in addLeadInMessage
    addLeadInMessage(os.path.join(inputPath, child), os.path.join(outputPath, child))
  [Previous line repeated 995 more times]
  File "<frozen ntpath>", line 120, in join
RecursionError: maximum recursion depth exceeded

Er erstellt mit 995 Unterordner „Ansage“ und bricht dann ab :roll_eyes:
Was mach ich falsch?

Windows 10 im Einsatz.

Danke, hatte ich probiert, aber als nächstes ist dann „true“ not defined und dann „null“ … zu null gibts dann keinen Alternativorschlag. das wird wohl leider nichts.