trafilatura to oparty na Pythonie ekstraktor treści działający bez przeglądarki. W oznaczonych przykładach z tego artykułu jedynym rywalem pod względem jakości ekstrakcji z tego samego HTML-a jest Mozilla Readability: trafilatura przepuściła jeden z 17 oznaczonych elementów boilerplate, podczas gdy Readability przepuściła pięć. Narzędzia oparte na przeglądarce pojawiają się tu wyłącznie w kontekście kosztu wdrożenia i nie były oceniane jakościowo na tych stronach.

Jej podstawowe zadanie to wydobywanie głównej treści: wejściem jest HTML, a wynikiem tekst i metadane nastawione na artykuł, z odfiltrowanymi elementami interfejsu strony dzięki heurystykom. Potrafi zapisać wynik jako JSON i w innych formatach, ale nie tworzy z góry zdefiniowanego schematu wierszy ani powtarzalnych, typowanych rekordów katalogowych. Testowano wersję 2.1.0. Nie uruchamia JavaScriptu, a porównanie z Readability pokazuje raczej kompromis między dokładnością a zachowaniem treści niż bezwarunkową przewagę w każdej kategorii.
Gdzie pasuje trafilatura i czego celowo nie robi
trafilatura opisuje się jako narzędzie w Pythonie i z linii poleceń do zbierania tekstu i metadanych z sieci — do crawlowania, scrapingu i ekstrakcji — z wyjściem do CSV, JSON, HTML, Markdown, TXT lub XML. To szeroka obietnica. W praktyce najważniejsza i najbardziej użyteczna część jest węższa: bierze dokument HTML i zwraca główną treść, odcinając otoczkę strony.

Warto mieć tu prosty model mentalny, bo tłumaczy on zarówno mocne strony, jak i granice narzędzia. Większość scraperów, które wskazujesz na stronę, działa na selektorach — mówisz im: „pobierz element z klasą product-price”, a one zwracają zawartość spod tego adresu. trafilatura działa odwrotnie. Czyta cały dokument i sama decyduje, które bloki są właściwym artykułem, a które tylko boilerplate’em, używając heurystyk treści zamiast napisanych przez Ciebie selektorów. Dlatego nie potrzebuje reguł dla każdej strony, aby oczyścić stronę z szumu. I właśnie dlatego nie poda Ci gotowego, ustrukturyzowanego katalogu: nie ma schematu, nie ma typowanych wierszy, jest po prostu „oto sensowny tekst”. To ekstraktor, a nie parser sterowany przez użytkownika.
Nie wymaga też osobno pobieranego runtime’u przeglądarki. W drzewie zależności są pakiety platformowe, takie jak lxml, więc określenia „bez pobierania przeglądarki” nie należy mylić z instalacją opartą wyłącznie na źródłach albo pozbawioną natywnego kodu.
Instalacja: niewielki ślad zależności, bez instalowania przeglądarki
pip install trafilatura w świeżym virtualenv na Pythonie 3.14 zainstalowało 17 pakietów; największy odnotowany wheel to lxml o rozmiarze 8,6 MB, zgodnie z pip-install-trafilatura.log. Nie było potrzebne ani osobne instalowanie przeglądarki, ani żadne polecenie po instalacji związane z browserem.
Dla porównania, pakiet Scrapling w tej samej bazie badawczej wymagał czterech osobnych wywołań pip, żeby uruchomić fetchery, i zakończył na 26 pakietach, z czego dwa to wheel’e sterownika Playwright po 42,2 MB (tools/scrapling/artifacts/logs/pip-install-scrapling.log) — i to jeszcze zanim pobrano binarkę przeglądarki. Pakiet Crawlee mierzył taki osobny pobór Chromium na około 81,7 MiB (tools/crawlee/research-materials.md). Te narzędzia wykonują większą pracę, więc to nie jest uczciwy pojedynek pod kątem możliwości; to tylko obraz tego, co zobaczy Twój dysk i cache CI. A wersja, którą dostałem z pip, to 2.1.0, czyli dokładnie bieżące wydanie — bez zastrzeżenia w stylu „testowano coś starego” przy liczbach poniżej.
Praktyka: co ekstraktor faktycznie zwrócił

Uruchomiłem ją na przykładach, które sprawdzały zarówno mocne strony, jak i ograniczenia, a surowe wyniki zapisałem w repo benchmarku. Test artykułowy był tym, który mnie przekonał.
Wziąłem lokalny przykład artykułu i owinąłem właściwą treść szumem: komunikatem logowania, zachętą „Subscribe”, linkami nawigacyjnymi, stopką copyright — czyli standardowym boilerplate’em, który naiwny scraper wciągnąłby razem z tekstem. trafilatura zwróciła tytuł plus wszystkie 3 z 3 akapitów głównej treści, a każdy z tych markerów boilerplate’u — Login, Subscribe, Copyright — zniknął z wyniku. Poza tekstem pobrała też poprawnie autora i datę z metadanych strony. Pełny wynik, w formatach .txt, .md i .json, znajduje się w results/local_article.json.
Ten sam zapisany HTML wyeksportowano jako zwykły tekst, Markdown i JSON. Artykuł nie dowodzi, że wszystkie trzy formaty powstały z jednego, jednoczesnego wywołania; to alternatywne serializacje tego samego procesu ekstrakcji. JSON zawiera tu wydobyty tekst i metadane, a nie zdefiniowane przez użytkownika rekordy wielowierszowe.
Oto cały pierwszy przebieg w jednym miejscu, żebyś mógł zweryfikować powyższe tezy, zamiast wierzyć im na słowo:
| Przykład | Co zwrócono | Czas wykonania | Dowód |
|---|---|---|---|
| Lokalny artykuł, otoczony nav / login / subscribe / copyright | tytuł + 3/3 akapity, zero wycieków sekcji boilerplate, autor Thunderbit Research Lab, data 2026-07-09 | 0.007 s | local_article.json |
| Lokalny katalog produktów | 12 nazw produktów i 12 cen jako płaski tekst, 0 ustrukturyzowanych wierszy, 478 znaków | 0.064 s | local_catalog_extraction.txt |
| Strona zwracająca HTTP 500 | fetch_url zwrócił None, bez rzucenia wyjątku | 30.012 s | local_failure_500.json |
| Strona produktu Books to Scrape (publiczna) | 1 324 znaki czystego tekstu, plus odpowiednik w Markdown | 0.753 s | public_books_product.txt / .md |
Każdy wiersz pochodzi z artifacts/raw/trafilatura-test-summary.json w pakiecie trafilatura — trafilatura 2.1.0, Python 3.14, macOS arm64, jedno uruchomienie na jednej maszynie. Traktuj czasy jako obserwacje, nie jako pełny benchmark.
W przypadku przykładu 500 fetch_url zwrócił None po około 30 sekundach, podczas gdy pobliskie lokalne endpointy odpowiadały szybko. Ten przebieg pokazuje opóźnienie, ale nie mówi, czy przyczyną był retry/backoff, stały timeout czy inna wewnętrzna ścieżka. Ten artykuł nie potwierdzał wspieranego parametru timeout per wywołanie dla fetch_url; udokumentowanym sposobem kontroli jest pobranie strony klientem, nad którym masz kontrolę, i przekazanie trafilaturze już otrzymanego HTML-a.

Te same testy pokazują też trzy granice narzędzia.
Po pierwsze i najważniejsze: trafilatura to ekstraktor treści, a nie scraper strukturalny. Uruchomiłem ją na przykładzie katalogu produktów. Zwróciła wszystkie 12 nazw produktów — jako tekst — i dokładnie 0 ustrukturyzowanych wierszy (478 znaków płaskiego tekstu, zgodnie z results/local_catalog_extraction.txt). Ceny też przeszły, od $18.00 do $51.00, każda w osobnej linii pod nazwą produktu. Wszystko, czego potrzebujesz, jest w wyniku; nic z tego nie jest polem. Jeśli potrzebujesz [{name, price, rating}, …], to nie jest właściwe narzędzie i żadna konfiguracja tego nie zmieni — to decyzja projektowa, a nie błąd.

Po drugie: nie renderuje JavaScriptu. Obsługuje statyczny HTML. Jeśli wskażesz jej stronę renderowaną po stronie klienta, dostaniesz to, co serwer wysłał przed uruchomieniem JS, czyli często niewiele użytecznego. Jeśli Twoje źródła mocno polegają na JS, trzeba połączyć ją z osobnym rendererem; trafilatura nie zrobi tej części za Ciebie.
Po trzecie, uwaga do moich własnych danych: pierwszy publiczny test ekstrakcji dotyczył bloku opisu produktu, a nie prawdziwego artykułu newsowego, bo publiczny sandbox nie zawiera stron z wiadomościami. Wynik oczyszczania artykułu powyżej pochodzi z kontrolowanego lokalnego przykładu. Ufna jestem temu wynikowi — usunięcie boilerplate’u jest jednoznaczne — ale nie chciałem udawać, że strona produktu dowodzi ekstrakcji na poziomie newsroomu, więc w pakiecie został to opisane jako luka. Późniejsze uruchomienie 2026-07-14 tę lukę zamknęło, a wyniki są w następnej sekcji.
Kontrola boilerplate’u na prawdziwych stronach

Dwie prawdziwe strony pobrano raz, zapisano jako offline’owe przykłady z hashami SHA-256 i uruchomiono ponownie bez dostępu do sieci. Nie zapisywano czasów ani oznaczonej prawdy referencyjnej. To kontrola boilerplate’u na prawdziwych stronach, a nie wynik dokładności.
| Przykład prawdziwego artykułu | Surowy HTML | Wydobyta treść | Treść/surowy | Usunięte markery otoczki strony | tytuł | data | hostname | autor | sitename |
|---|---|---|---|---|---|---|---|---|---|
| Wikipedia, „Web scraping” | 230 049 bajtów | 26 673 bajty | 0.116 | 4 z 4 | tak | 2005-09-17 | wikipedia.org | null | null |
| Wikinews, „7th Heaven” (archiwalne) | 79 716 bajtów | 2 200 bajtów | 0.028 | 5 z 5 | tak | 2005-11-29 | wikinews.org | null | null |
Oba wiersze pochodzą z artifacts/results/trafilatura-fidelity-summary.json. Sprawdzane markery to „Jump to content”, „Privacy policy”, „Powered by MediaWiki”, „This page was last edited” oraz „free news source” na stronie Wikinews — wszystkie zostały usunięte, żaden nie wyciekł, na obu stronach.
Stosunek treści do surowego HTML-a mierzy redukcję, a nie poprawność; pominiętej treści artykułu nie oceniano. author i sitename były null na tych dwóch szablonach MediaWiki, podczas gdy lokalny, kontrolowany przykład dostarczał autora. To obserwacja ograniczona do MediaWiki, a nie dowód ogólnej niezawodności w wykrywaniu byline’ów. Wyodrębnione daty podano tak, jak zostały zwrócone, i nie weryfikowano ich względem prawdy referencyjnej.
Dwa ekstraktory, te same bajty HTML, jeden skrypt oceniający

W tej bazie badawczej istnieje dokładnie jedno porównanie trafilatury z tym samym zestawem testowym, a pakiet trafilatury nie przygotował go sam. Zrobił to pakiet mozilla-readability jako grupa kontrolna: 22 ręcznie oznaczone przykłady, w których każdy blok tekstu ma etykietę ARTICLE albo BOILERPLATE, a każde słowo ma unikalny token-podstawnik, dzięki czemu każdy wydobyty wyraz można przypisać do dokładnie jednego oznaczonego bloku. Oba narzędzia dostały identyczne bajty HTML. Readability działała pod jsdom 29.1.1 na Node v22.22.3; trafilatura użyła własnego parsera.
| Metryka (uśrednienie mikro, zestaw fidelity treści) | trafilatura 2.1.0 | @mozilla/readability 0.6.0 | Dowód |
|---|---|---|---|
| Odzyskane jednostki artykułu | 40 z 40 | 40 z 40 | comparison.json |
| Wyciekłe jednostki boilerplate’u | 1 z 17 | 5 z 17 | comparison.json |
| Tokeny boilerplate’u zanieczyszczające wynik | 3 | 41 | comparison.json |
| Precyzja tokenów | 0.939 | 0.902 | comparison.json |
| F1 tokenów | 0.969 | 0.948 | comparison.json |
Recall dla treści nieprozaicznych, przykład f6_nonprose | 7 z 8 | 8 z 8 | comparison.json |
Bardzo krótki artykuł, F1 dla f3_short_120 | 0.571 | 0.800 | comparison.json |
Źródło: tools/mozilla-readability/artifacts/raw/comparison.json w tej bazie badawczej — 11 przykładów w zestawie content-fidelity, 40 jednostek artykułu i 17 jednostek boilerplate’u. To syntetyczne przykłady, celowo obciążone przypadkami trudnymi, więc czytaj je jako mechanizm działania, a nie jako ranking na prawdziwym korpusie.
Żadne z tych narzędzi nie wygrywa wszędzie i właśnie to rozdarcie jest najciekawsze. trafilatura lepiej trzyma czystość wyniku — jeden wyciekły blok wobec pięciu u Readability, trzy zanieczyszczające tokeny wobec 41. To jest ta część „czystego tekstu artykułu”, która decyduje, czy okno kontekstu LLM zapełni się linkami z sidebaru. Ale Readability odzyskuje treść, którą trafilatura odrzuca: na przykładzie non-prose trafilatura usunęła <figcaption>, które Readability zachowała, a na bardzo krótkim artykule trafilatura uzyskała 0.571 wobec 0.800 u Readability. Agresywne czyszczenie to kompromis, nie darmowa wygrana. Jeśli Twój korpus jest pełen krótkich notek, podpisów pod obrazkami i stron z dużą liczbą tabel, ten kompromis może działać na Twoją niekorzyść.
Jak zamienić to porównanie w test wyboru narzędzia
Na początku określ, który błąd jest droższy dla Twojego pipeline’u. Jeśli boilerplate zużywa tokeny downstream albo zaśmieca wyniki wyszukiwania, większą wagę trzeba nadać wyciekom bloków boilerplate’u i liczbie zanieczyszczających tokenów. Jeśli nie można zaakceptować utraty podpisu, krótkiej notki albo bloku nieprozaicznego, większą wagę ma odzysk treści zależnie od kształtu strony. Wspólny zestaw przykładów pokazuje ten kompromis, ale nie wybiera wag za Ciebie — ani dla archiwum newsroomu, ani dla korpusu dokumentacji, ani dla pipeline’u retrieval.
Szerszy kontekst testów obciążeniowych znajdziesz w porównaniu 10 bibliotek pod kątem pamięci i niepoprawnego HTML-a.
Buduj taki test porównawczy na zapisanym HTML-u, a nie na żywych URL-ach, żeby oba ekstraktory dostały identyczne bajty. Dodaj zwykłe, dłuższe artykuły, krótkie komunikaty, teksty z dużą liczbą podpisów, dokumenty ciężkie od tabel lub kodu oraz szablony od każdego wydawcy, z którego faktycznie korzystasz. Zanim uruchomisz narzędzie, oznacz niewielką liczbę wymaganych jednostek treści i znanych bloków otoczki. Potem oceniaj osobno pusty wynik, odzysk wymaganych jednostek, wycieki niechcianych jednostek i pola metadanych. Jedna zbiorcza ocena „quality” może ukryć dokładnie ten tryb awarii, który naprawdę ma znaczenie operacyjne.
Waliduj też kontrakt wyjściowy po stronie downstream. JSON z trafilatury może zawierać wydobytą treść i metadane, ale serializacja do JSON-a to nie to samo co typowany schemat wierszy. Dla tekstu artykułu sprawdzaj minimalną długość treści i wymagane markery, zamiast akceptować dowolny niepusty wynik. Dla metadanych odróżniaj brak od błędnej wartości i zachowuj źródłowy URL oraz wersję ekstrakcji, żeby dało się odtworzyć pominięcia.
Sam etap pobierania trzeba testować osobno. Obserwacja 30-sekundowego niepowodzenia dotyczy fetch_url, a nie ekstrakcji z już posiadanego HTML-a, a jego wewnętrzny mechanizm nie został ustalony. Jeśli ważne są deadline’y, retry, autoryzacja albo polityka proxy, użyj klienta, nad którym masz kontrolę, zapisz końcowe bajty odpowiedzi i dopiero je przekazuj do ekstraktora. To oddziela awarie pobierania od awarii wyboru treści i czyni porównania powtarzalnymi.
Na koniec mierz właściwości wdrożeniowe na docelowej platformie. Instalacja na Pythonie 3.14 z 17 pakietami nie wymagała osobnej przeglądarki, ale to nie mówi nic o przepustowości, wzroście pamięci, dostępności wheel’i na każdej architekturze ani o zachowaniu przy wielu workerach. Artykuł pokazuje użyteczny mechanizm precyzji/retencji względem Readability; gotowość produkcyjna nadal zależy od korpusu i testów runtime.
Dla zewnętrznego potwierdzenia, niezależnego od tej bazy, własna strona oceny trafilatury oraz publiczny ScrapingHub article-extraction-benchmark pokazują ją przed readability-lxml pod względem word-F1 na około 181 prawdziwych stronach — czyli w tym samym kierunku, co tabela powyżej. Jeden niuans, który większość omówień tego benchmarku pomija: szeroko cytowane F1 dla trafilatury (~0.945) dotyczy starszej linii 0.5.1, a nie testowanej tutaj 2.1.0.
Plusy i minusy
Plusy:
- Mniejszy wyciek oznaczonego boilerplate’u niż w Readability na wspólnym zestawie: 1 blok z 17 wobec 5.
- Poprawnie pobrała autora i datę w lokalnym przykładzie, a na obu prawdziwych stronach artykułowych tytuł, datę i hostname.
- Ten sam HTML można zapisać jako tekst, Markdown lub JSON.
- Instalacja obejmująca 17 pakietów bez osobnego runtime’u przeglądarki.
- Błędy są ciche:
fetch_urlzwracaNoneprzy HTTP 500 zamiast rzucać wyjątkiem. - Testowana wersja jest aktualna (2.1.0) — bez rozjazdu wersji.
- Licencja Apache-2.0 — liberalna i przyjazna komercyjnie.
Minusy:
- To nie jest scraper strukturalny: test katalogu zwrócił 12 nazw i 12 cen jako tekst oraz 0 typowanych wierszy. Brak schematu, brak pól.
- Brak renderowania JavaScriptu — tylko statyczny HTML; dla stron po stronie klienta potrzebny jest osobny renderer.
authorisitenamewróciły jako null na obu prawdziwych stronach MediaWiki, więc ekstrakcja byline’u nie jest gwarantowana.- Agresywne czyszczenie ma koszt: usunęło
<figcaption>, które Readability zachowała, i uzyskało 0.571 wobec 0.800 u Readability na bardzo krótkim artykule. - Ciche 500 zwracało
Nonedopiero po 30.012 sekundach; przy kontroli deadline’u użyj fetchera, nad którym masz pełną kontrolę. - Wbudowany crawler/sitemap spider i formaty CSV/XML nie były w tym przebiegu testowane, więc nie formułuję o nich żadnych tez.
Dla kogo to jest, a kto powinien odpuścić
trafilatura jest nastawiona na wydobywanie głównej treści z artykułów. To dobry kandydat do budowy korpusów tekstowych, czytelnych archiwów albo wejść do NLP ze statycznego HTML-a, gdy heurystyczne czyszczenie jest akceptowalne. Porównanie wspólnych przykładów potwierdza mniejszy wyciek boilerplate’u niż w Readability, podczas gdy Readability lepiej zachowywała krótkie i nieprozaiczne przypadki.
Odpada, jeśli potrzebujesz strukturalnej ekstrakcji — np. wierszy produktów z cenami, typowanych rekordów, pól key: value — bo dostajesz tekst, nie tabelę (test katalogu odzyskał wszystkie 12 nazw i wszystkie 12 cen, ale 0 wierszy). Odpada też wtedy, gdy Twoje strony renderują treść w przeglądarce i nie chcesz dokładać osobnego renderera, bo trafilatura czyta statyczny HTML i na tym kończy. Dwa razy zastanów się również, jeśli Twój korpus składa się głównie z krótkich notek, podpisów pod obrazami i stron z dużą liczbą tabel: na oznaczonych przykładach właśnie tam jej czyszczenie zaczyna ucinać realną treść (0.571 F1 na bardzo krótkim artykule, usunięty <figcaption>). Dopasuj narzędzie do zadania: pełny tekst artykułów — tak; strukturalny JSON, strony JS albo notki po 100 słów — lepiej gdzie indziej.
Alternatywy, w tym miejsce Thunderbit
trafilatura to samodzielna biblioteka na licencji Apache-2.0, bez opłaty per wywołanie narzucanej przez dostawcę; koszty obliczeń, transferu, pobierania, monitoringu i utrzymania pozostają po stronie operatora. Obsługuje ekstrakcję treści z dostarczonego HTML-a, ale nie wykonuje przeglądarki ani nie tworzy zdefiniowanych przez użytkownika schematów powtarzalnych wierszy.
Dla tych samych przykładów we wszystkich sześciu ekstraktorach zobacz porównanie ekstrakcji sześciu bibliotek.
Usługa zarządzana może przenieść pobieranie, renderowanie i kształtowanie schematu za granicę dostawcy. Budujemy Thunderbit, ale nie uruchamialiśmy jej na tych przykładach, więc ten artykuł nie daje podstaw do porównania jakości, renderowania, latencji, anty-bota ani kosztów. Wybór sprowadza się do samodzielnie hostowanej kontroli HTML→treść albo hostowanej granicy pobierania i strukturalnej ekstrakcji.
Powiązane recenzje benchmarków: pełne porównanie open-source scraperów, recenzja Crawl4AI z przeglądarką oraz recenzja Firecrawl w wariancie self-hosted Markdown.
Wypróbuj Thunderbit do ekstrakcji danych z sieci
Werdykt
Wybierz trafilaturę, gdy zadaniem jest wydobywanie treści artykułów ze statycznego HTML-a, a priorytetem jest odrzucanie oznaczonego boilerplate’u. Na wspólnych przykładach przepuściła jeden oznaczony element boilerplate’u wobec pięciu w Readability. Ta przewaga przyszła jednak kosztem gorszego zachowania na bardzo krótkich i nieprozaicznych przykładach, więc to kształt korpusu powinien decydować o wyborze.
Nie uruchamia JavaScriptu ani nie zwraca zdefiniowanych przez użytkownika powtarzalnych wierszy. Na dwóch stronach MediaWiki pola author i sitename były null — to obserwacja ograniczona do tego szablonu. Readability zachowała podpis, który trafilatura usunęła, i uzyskała lepszy wynik na przykładzie oznaczonym f3_short_120; widoczny materiał dowodowy wspiera tezę o niższym F1 na bardzo krótkim przykładzie, a nie o liczbie znaków czy o tym, że wynik był „zepsuty”.
Wypróbuj Thunderbit do ekstrakcji danych z sieci Get Started Free
FAQ
Jaką strukturę zwraca trafilatura?
Może serializować wydobytą treść i metadane do JSON-a, Markdowna, tekstu, HTML, XML albo CSV. To jest uporządkowana serializacja, ale nie zdefiniowany przez użytkownika schemat powtarzalnych wierszy, taki jak nazwa produktu, cena i ocena. W przykładzie katalogu wartości wróciły jako płaska treść, a nie typowane rekordy.
Czy trafilatura może zeskrobać katalog produktów do ustrukturyzowanych wierszy?
Nie. To ekstraktor treści, a nie scraper strukturalny. W przykładzie katalogu zwróciła wszystkie 12 nazw produktów jako płaski tekst i 0 ustrukturyzowanych wierszy — nazwy są w wyniku, ale nie jako pola. Jeśli potrzebujesz typowanych rekordów typu name/price/rating, użyj parsera opartego na selektorach albo API do ekstrakcji opartego na schemacie.
Czy trafilatura renderuje JavaScript?
Nie. Obsługuje wyłącznie statyczny HTML. Jeśli wskażesz jej stronę renderowaną po stronie klienta, dostaniesz to, co serwer wysłał przed wykonaniem JavaScriptu, czyli często nie treść, której szukasz. Przy stronach mocno opartych na JS połącz ją z osobnym rendererem.
Czy trafilatura jest trudna w instalacji?
W testowanym virtualenv na Pythonie 3.14 instalacja pobrała 17 pakietów i nie wymagała osobnego runtime’u przeglądarki. Największy odnotowany wheel to lxml o rozmiarze 8,6 MB. Niezależnie od tego jedno lokalne wywołanie 500 potrzebowało 30.012 sekund, aby zwrócić None; jeśli potrzebujesz pewnej kontroli czasu, użyj klienta HTTP, nad którym masz pełną kontrolę.
Czy trafilatura jest darmowa do użytku komercyjnego?
Tak, ma licencję Apache-2.0, więc jest liberalna i przyjazna komercyjnie. Jak zawsze, przed wdrożeniem sprawdź aktualną licencję w repozytorium.


