Python Kodu değişkliği - Süre eşitliğini nasıl kaldırabilirim?

Merhaba arkadaşlar. Aşağıdaki kod blogunu github’da bir arkadaş paylaştı ancak kendisi ile iletişim kuramıyorum. Bu python url.txt dosyasında örneğini verdiğim şekliyle videoyu m3u8 formatından alarak ilgili dizine mp4 olarak atıyor. Ancak çalışma sırasında indirilen video ile url.txt dosyasındaki süreler uyuşmaz ise baştan indirmeye kalkıyor. Elimde yığınla veri olduğu için bu süre kıyaslama olayı olmadan indirerek bir sonraki videoya geçmesini istiyorum. Çünkü kıyaslama hatası yüzünden saatlerce aynı dosyayı silip tekrar indiriyor. Bu konuda yardımcı olabilecek kimse var mı ?

import requests
import subprocess
import os
import time
import m3u8
import re
import tinytag as tnt
import math
import threading
import argparse
import sys

parser = argparse.ArgumentParser()
parser.add_argument("-o", "--output", required=True, help="Download file path.")
args, unknown = parser.parse_known_args()

def resource_path(relative_path):
    base_path = getattr(sys, '_MEIPASS', os.path.dirname(os.path.abspath(__file__)))
    return os.path.join(base_path, relative_path)

p_ctrl=[0]

def download(course, duration, url, path):
    try:
        video_id = url.split("/")[-1]
        json_file = requests.get(f"https://cinema8.com/api/v1/uscene/rawvideo/flavor/{video_id}").json()
        f_name = json_file["name"]
        f_hlsUrl = json_file["hlsUrl"]
        f_path = path + f_name
        f_max_res_url = max(m3u8.load(f_hlsUrl).playlists, key=lambda lm:lm.stream_info.bandwidth).absolute_uri

        if not already_downloaded(f_path, duration):
            if not os.path.exists(path): os.makedirs(path)
            print("{} ...".format(f_name))
            params = 'ffmpeg -y -headers \"User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:108.0) ' + \
                'Gecko/20100101 Firefox/108.0 Host: www.btkakademi.gov.tr Accept: */* Accept-Language: en-US,en;q=0.8,tr-TR;q=0.5,tr;q=0.3 ' + \
                'Accept-Encoding: gzip, deflate, br DNT: 1 Connection: keep-alive Referer: ' + course + \
                ' Cookie: locale=tr; Sec-Fetch-Dest: script Sec-Fetch-Mode: no-cors Sec-Fetch-Site: same-origin\" -i ' + f_max_res_url + \
                ' -bsf:a aac_adtstoasc -vcodec copy -c copy ' + '\"' + f_path + '\"'
            
            process = subprocess.Popen(params, encoding='UTF-8', stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
            d_thread = threading.Thread(target=start_process, args=(process,))
            d_thread.start()

            p_ctrl[0],temp,t_out = 0,-1,0
            while True:
                #print(p_ctrl[0])
                if p_ctrl[0] == -1: 
                    process.kill()
                    download(course, duration, url, path)
                    return
                if p_ctrl[0] == temp: 
                    t_out += 1
                    if t_out >= 20:
                        print("Timeout gerceklesti...")
                        process.kill()
                        download(course, duration, url, path)
                        return
                else: t_out = 0
                if p_ctrl[0] == -2:
                    if already_downloaded(f_path, duration):
                        return
                    else:
                        download(course, duration, url, path)
                        return
                temp = p_ctrl[0]
                time.sleep(1)
                
        else:print("{} +".format(f_name))

    except:
        print("Tekrar baglaniliyor...")
        time.sleep(3)
        download(course, duration, url, path)
        return

def start_process(process):
    while not process.poll(): # process not terminated
        if process.stdout: # process running and prompting
            std_out = process.stdout.readline()
            if std_out: # process running and prompting
                p_ctrl[0] += 1
                if 'error' in std_out: # process running but prompted error
                    p_ctrl[0] = -1
                    return
            else: # process finished with or without error
                p_ctrl[0] = -2
                return
        time.sleep(0.1)

def m_download(course, urls, paths):
    urls_count = sum(len(u) for u in urls)
    for i in range(len(urls)):
        for j in range(len(urls[i])):
            downloaded = sum(len(u) for u in urls[:i])
            print(downloaded+j+1, "/", urls_count, paths[i].split("\\")[-1], end = ': ')
            duration = urls[i][j].split('|')[0]
            url = urls[i][j].split('|')[1]
            download(course, duration, url, paths[i])
    print("Bitti!")

def get_url(urls):
    formatted = []
    for l in urls:
        url = "https://cinema8.com/api/v1/uscene/rawvideo/flavor/"
        duration = l.split("|")[0].strip()
        code = l.split("/")[-1].split("?")[0]
        if l.split("/")[3] == "raw-video":
            formatted.append(get_duration(duration).__str__() + "|" + url + code)
    return formatted

def connection():
    try: return requests.get('http://google.com', timeout=5)
    except: return False

def already_downloaded(f_path, duration):
    return  os.path.exists(f_path) and \
            tnt.TinyTag.get(f_path).duration != None and \
            int(duration) == math.trunc(tnt.TinyTag.get(f_path).duration)

def get_duration(t):
    durations = t.split(' ')[::-1]
    total = 0
    for i in range(0, len(durations)):
        total += int(re.findall(r'\d+', durations[i].strip())[0]) * pow(60, i)
    return total

def correct_string(string):
    corrected = ""
    for c in string:
        if c not in "\/:*?<>|": corrected += c
        else: corrected += "-"
    return corrected;

def get_url_and_path(main_folder_path, txt):
    file_id = 1
    with open(txt, 'r', encoding="utf-8") as f:
        urls = []
        paths = []
        prgs = f.read().split("\n\n")
        course = prgs[0]
        for prg in prgs[1:]:
            line = prg.split("\n")
            paths.append(main_folder_path + file_id.__str__() + ". " + correct_string(line[0]) + "\\")
            urls.append(get_url(line[1:]))
            file_id += 1
    return course, urls, paths

def start(main_path):
    course, urls, paths = get_url_and_path(main_path, main_path + "\\url.txt")
    print("\n__________________ Indirme Islemi Basladi __________________\n")
    m_download(course, urls, paths)
    print("\n_____________________ Kontrol Ediliyor _____________________\n")
    m_download(course, urls, paths)

if args.output != None:
    if args.output[-1] != "\\":
        args.output += "\\"
    os.system('mode 60,40')
    os.system('color 8E')
    print("\n  || BTK Video Downloader ||  \n  ")
    start(args.output)

URL.txt aşağıdaki gibidir.

1d 52sn | https://cinema8.com/raw-video/0Dk1YzJN?c=js-api&sub=tr&t=s0
11d 55sn | https://cinema8.com/raw-video/nOYEnqOw?c=js-api&sub=tr&t=s0