12 min czytaniaMigracja

Migracja z TinyURL: co się przenosi, co zostaje, co się psuje

Migracja z TinyURL z planem: co da się wyeksportować, których linków tinyurl.com nie przekierujesz, mapowanie CSV, import, zmiana DNS i weryfikacja.

Ana Kowalska
Marketing solutions engineering

Aby przejść z TinyURL, najpierw posortuj linki na dwa stosy: linki w domenie, którą posiadasz, i linki w tinyurl.com. Pierwszy stos przenosi się czysto, bo zmieniasz jeden rekord DNS i stare adresy URL nadal działają. Drugiego stosu nie możesz przekierować w ogóle, bo domena należy do TinyURL. Możesz skopiować miejsca docelowe do Elido, ale każde miejsce, w którym opublikowano link tinyurl.com/xxxx, trzeba zaktualizować ręcznie.

Druga rzecz, którą warto wiedzieć na początku: obecnie niezawodnym sposobem przeniesienia jest plik. Wyeksportuj dane udokumentowanym wywołaniem TinyURL GET /urls/available, zredukuj wynik do destination, slug, title i wczytaj go importem zbiorczym Elido. Elido ma też importer TinyURL na jedno kliknięcie, ale wywołuje on endpoint, którego nie ma w opublikowanym API TinyURL, więc uznajemy go za niezweryfikowany do czasu planowanej poprawki. Ten przewodnik opisuje obie drogi i całą podróż: od eksportu po analitykę, z przełączeniem i rollbackiem pośrodku. Fakty o TinyURL pochodzą z jego własnego bloga i specyfikacji OpenAPI, sprawdzonych 2026-10-01 i 2026-10-02.

Werdykt funkcja po funkcji, czy w ogóle się przenosić, znajdziesz w Elido vs TinyURL albo w szerszym zestawieniu alternatyw dla TinyURL.

Które linki TinyURL da się przenieść

O wszystkim decyduje własność nazwy hosta. Krótki link to dwie rzeczy: nazwa hosta i kod. Kod możesz zabrać dokądkolwiek, ale sprawić, by link nadal działał, możesz tylko wtedy, gdy kontrolujesz nazwę hosta.

Typ linkuKto kontroluje przekierowanieCo możesz zrobić
tinyurl.com/xxxx, utworzony bez kontaTinyURLNic ze starym linkiem. Utwórz miejsce docelowe w Elido od nowa i zastąp stary link wszędzie, gdzie został opublikowany
tinyurl.com/your-alias, utworzony na koncieTinyURLEdytuj miejsce docelowe wewnątrz TinyURL w planie płatnym albo zaimportuj alias do Elido pod nową nazwą hosta i zaktualizuj każde miejsce umieszczenia
go.yourbrand.com/xxxx (domena własna)TySkieruj nazwę hosta na Elido i zaimportuj aliasy. Stare adresy URL nadal działają
Diagram: linki w Twojej własnej domenie przechodzą do Elido po zmianie DNS, a linki tinyurl.com zostają w TinyURL i trzeba je zastąpić tam, gdzie zostały opublikowane

Uczciwa wersja dla pierwszych dwóch wierszy: gdy przestaniesz płacić TinyURL, te linki będą się rozwiązywać tak długo, jak TinyURL je utrzymuje, a Ty nie masz jak zobaczyć kliknięć, zmienić ich ani przekierować. Niektóre zespoły zostawiają je celowo. Uważam, że to dobra decyzja dla starych linków o niskim ruchu.

Strona migracji z TinyURL do Elido z krokami połączenia, opcji i importu do jednorazowego zbiorczego importu istniejących linków

Krok 1: wyeksportuj linki z TinyURL

TinyURL daje jeden udokumentowany sposób wypisania linków: API. Jego specyfikacja OpenAPI (sprawdzona 2026-10-02) definiuje listowanie jako GET /urls/{type}, gdzie type to available lub archived, z opcjonalnymi datami from i to oraz filtrem search przyjmującym prefiks alias: lub tag:. Wywołanie wymaga tokenu bearer. Artykuł TinyURL o wypisywaniu linków opisuje ten sam endpoint i mówi, że typ jest jedynym obowiązkowym wejściem.

To, czego specyfikacja nie podaje, jest równie ważne. Nie definiuje parametrów page ani per_page ani limitów zapytań. Przy dużym koncie zawężaj więc każde zapytanie oknami from/to (na przykład po miesiącu) i zapisuj każdą odpowiedź na dysk, zanim zrobisz cokolwiek innego:

# One window at a time; inspect the first response by hand before scripting further
curl -s -H "Authorization: Bearer $TINYURL_TOKEN" \
  "https://api.tinyurl.com/urls/available?from=2025-01-01T00:00:00Z&to=2025-02-01T00:00:00Z" \
  > tinyurl-2025-01.json

Nie zweryfikowaliśmy kształtu odpowiedzi na żywo (specyfikacja nie rozstrzyga, czy zwraca listę, czy pojedynczy obiekt), więc otwórz jeden plik i obejrzyj go, zanim napiszesz parser. Jeśli chcesz też linki zarchiwizowane, uruchom to samo wywołanie na /urls/archived.

Trzy ograniczenia kształtują resztę planu:

  • Bez konta nie ma listy. TinyURL podaje, że linków utworzonych bez logowania nie da się zarządzać ani usunąć. Nie ma rekordu per użytkownik, więc nie ma czego eksportować.
  • Plan darmowy jest tylko do odczytu. Według strony planu darmowego TinyURL edycja i usuwanie linków, analityka kliknięć, domeny własne i tworzenie zbiorcze są dostępne w planach płatnych.
  • Analityki nie ma na liście. Historia kliknięć jest na Tobie. Zrób zrzut ekranu lub wyciągnij raport z TinyURL, zanim zrezygnujesz. Nie znaleźliśmy udokumentowanego przycisku eksportu CSV w centrum pomocy TinyURL, więc ten przewodnik go nie obiecuje.

Krok 2: zmapuj dane TinyURL na plik akceptowany przez Elido

Cokolwiek wyciągniesz z TinyURL, zredukuj to do tych samych trzech pól:

  • Długi URL z TinyURL staje się destination (cel linku).
  • Alias z TinyURL staje się slug. Zostaw puste dla linków w tinyurl.com, dla których chcesz nowe kody.
  • Tytuł lub opis z TinyURL staje się title.

TinyURL nazywa je aliasami, Elido slugami. To to samo: znaki po nazwie hosta. Jeśli domena docelowa jest pusta, aliasy przenoszą się bez zmian.

Strona linków w Elido ma kartę zbiorczą i kartę CSV, a obie czytają wiersze w formie url, slug, title. Na karcie CSV pierwszy wiersz jest pomijany, jeśli nie zawiera adresu http(s)://, więc wiersz nagłówka jest bezpieczny. Wiersze zaczynające się od # są ignorowane w polu wklejania. Własne slugi to litery, cyfry i myślniki, więc sprawdź aliasy z innymi znakami przed wysłaniem; wiersze, które się nie powiodą, są wypisane z powodem.

destination,slug,title
https://acme.com/spring-sale,spring-sale,Spring Sale
https://acme.com/pricing,,Pricing page

Jeśli używałeś tagów TinyURL, zachowaj je. Nie zmieszczą się w trzykolumnowym CSV, ale droga przez API opisana niżej je przyjmuje.

Krok 3: zaimportuj do Elido

Są dwie drogi. Droga przez plik działa dziś. Wbudowany importer istnieje, ale jest niezweryfikowany.

Niezawodna droga: CSV, wklejanie zbiorcze lub API zbiorcze

Karty zbiorcza i CSV w panelu przetwarzają do 100 linków na partię, więc większy plik podziel na części. Strona pomocy o imporcie zbiorczym prowadzi przez formularz, a instrukcja importu zbiorczego z Arkuszy Google przyda się, jeśli czyściłeś eksport w arkuszu.

API przestrzeni roboczej przyjmuje ten sam kształt jako JSON. POST /v1/workspaces/{workspace_id}/links/bulk akceptuje domain_id i do 100 links, każdy z destination_url oraz opcjonalnymi slug, title i tags. Każdy wiersz jest przetwarzany osobno, więc jeden zły wiersz nie przerywa partii, a odpowiedź wskazuje, które wiersze zakończyły się błędem. Dodaj samodzielnie tag, na przykład imported:tinyurl, żeby później filtrować partię. API i SDK zawiera biblioteki klienckie.

Wbudowany importer TinyURL i jego znany błąd

Elido ma importer TinyURL na jedno kliknięcie, opisany na stronie migracji z TinyURL. Wklejasz token API TinyURL, wybierasz domenę Elido, na którą mają trafić linki, i strategię konfliktów. Problem leży w pierwszym wywołaniu HTTP. Worker buduje takie zapytanie:

GET https://api.tinyurl.com/aliases?page=1&per_page=100
Authorization: Bearer <token>

i oczekuje w odpowiedzi {"data": [{alias, url, title, tags}], "meta": {"total", "has_more"}}. Specyfikacja TinyURL nie ma ścieżki /aliases; operacje na aliasach są pod /alias/{domain}/{alias}, a listowanie to /urls/{type}. Ten kontrakt paginacji nigdy więc nie pochodził z TinyURL. Nasz test jednostkowy podaje ręcznie napisaną odpowiedź w założonym kształcie i przechodzi, co dowodzi, że parser pasuje do naszego założenia, a nie mówi nic o TinyURL. Nie uruchomiliśmy go na żywym koncie, bo potrzebny jest token z planu płatnego. Nie planuj jeszcze migracji wokół niego.

Poprawka jest planowana: przejście na /urls/available (z /urls/archived za flagą), przechodzenie po oknach from/to, defensywne parsowanie i test na prawdziwej, zarejestrowanej odpowiedzi. Potem paginację i realny limit na zapytanie trzeba będzie zmierzyć ponownie na żywym koncie, bo specyfikacja nie podaje żadnego z nich.

Strona integracji panelu Elido w demonstracyjnej przestrzeni roboczej, z której uruchamia się źródła migracji

Strona integracji w przestrzeni roboczej DEMO z danymi syntetycznymi. Stąd uruchamia się migrację z TinyURL.

Co robi importer, gdy już dostanie stronę danych

Wszystko po wywołaniu HTTP nie zależy od kwestii endpointu i tę część możemy opisać na podstawie kodu.

  • Start. POST z token, target_domain_id i opcjonalnym conflict_strategy. Handler odrzuca pusty token, brakującą domenę i każdą strategię spoza suffix, skip, fail, po czym odpowiada 202 z zadaniem i uruchamia workera w tle, odłączonego od żądania.
  • Na link. Wiersz bez URL lub bez aliasu liczy się jako nieudany z podaniem powodu. W przeciwnym razie alias staje się slugiem, miejsce docelowe i tytuł są kopiowane (tytuł obcięty do 200 znaków), a tagi są kopiowane z dopisanym imported:tinyurl.
  • Postęp. Liczniki są zapisywane w wierszu zadania co 50 linków. W logu zadania trafia najwyżej 1000 wierszy błędów.
  • Błędy autoryzacji i limitów. 401 lub 403 kończy zadanie błędem z komunikatem "check the bearer token", a 429 kończy je jako przekroczenie limitu. Nie ma ponawiania ani backoffu: zadanie się zatrzymuje.

Token przechodzi z treści żądania do zadania w tle i nigdzie indziej. Wiersz zadania nie zapisuje tokenu, a nic nie jest szyfrowane w spoczynku, bo nic nie jest przechowywane. Treść żądania jest czytana z limitem 4 KB. Kod nie waliduje tokenu ani nie sprawdza planu przed startem, więc zły token ujawni się jako nieudane zadanie po pierwszym żądaniu, a nie jako błąd formularza. Wcześniejsze wersje naszej dokumentacji opisywały wstępne sprawdzenie na endpoincie domen; tego kroku nie ma w kodzie, a specyfikacja TinyURL nie ma takiej ścieżki.

Reguły konfliktów i limity

Przed każdym wstawieniem worker wykonuje jedno indeksowane zapytanie o parę domena i slug:

  • suffix (domyślnie) próbuje alias-2, alias-3, aż do alias-50 i odrzuca wiersz, jeśli wszystkie są zajęte.
  • skip zostawia istniejący link Elido w spokoju i zapisuje w logu wiersz źródłowy.
  • fail kończy zadanie błędem przy pierwszym konflikcie.

Każdy przebieg jest ograniczony do 50 000 linków i 30 minut. Warto znać dwa zachowania. Gdy osiągnięty zostanie limit 50 000, pętla po prostu się zatrzymuje, a zadanie kończy się powodzeniem; nie jest oznaczone jako nieudane, więc porównaj końcowe liczby z sumą ze źródła. Gdy skończy się 30-minutowy budżet, zadanie jest oznaczone jako nieudane z liczbą dotychczas zaimportowanych linków.

Lista linków Elido w demonstracyjnej przestrzeni roboczej z krótkimi linkami, miejscami docelowymi, tagami, kliknięciami z 30 dni i statusem

Lista linków w przestrzeni roboczej DEMO. Zaimportowane linki mają tag imported:tinyurl, więc możesz przefiltrować partię do przeglądu.

Bezpieczne testowanie importera

Gdy endpoint zostanie poprawiony, albo jeśli wypróbujesz importer wcześniej, rób to na małą skalę. Utwórz jednorazową przestrzeń roboczą, dodaj pustą domenę i uruchom zadanie najpierw ze strategią fail. Pusta domena oznacza brak konfliktów, więc każda porażka to problem z parsowaniem lub autoryzacją, a nie kolizja. Potem porównaj trzy liczby: liczbę ze źródła w TinyURL, total raportowane przez zadanie oraz liczniki zaimportowanych, pominiętych i nieudanych. Ponieważ worker bierze meta.total z oczekiwanej odpowiedzi, rozbieżność między total a Twoją rzeczywistą liczbą to pierwszy znak, że kształt odpowiedzi różni się od założeń parsera. Przefiltruj po imported:tinyurl, otwórz dziesięć losowych linków i porównaj miejsce docelowe, slug i tytuł z TinyURL.

Założenie świeżej przestrzeni roboczej Elido zajmuje kilka minut; utwórz darmowe konto i najpierw dodaj swoją domenę, żeby była gotowa, gdy import się skończy.

Krok 4: przełącz domenę własną

Jeśli w TinyURL używasz brandowanej nazwy hosta, jesteś w łatwym przypadku. Konfiguracja brandowanej domeny w TinyURL to CNAME lub podobna zmiana DNS w domenie, którą już posiadasz, więc ta sama dźwignia działa w drugą stronę. Zauważ, że importer nie tworzy domeny za Ciebie ani nie czyta pola domain z TinyURL. Brandowana nazwa hosta to osobny krok.

Kolejność ma znaczenie, bo DNS to ostatni krok i jedyny, który odczuwają odwiedzający:

  1. Obniż TTL rekordu z dniem wyprzedzenia, żeby zmiana weszła szybko.
  2. Dodaj nazwę hosta do Elido w sekcji Domains i poczekaj na weryfikację. Przewodnik dodawanie domeny podaje dokładne rekordy, a rozwiązywanie problemów z weryfikacją DNS opisuje literówki, które powodują większość zawieszonych stanów "Pending".
  3. Zaimportuj aliasy na tę nazwę hosta, podczas gdy odwiedzający wciąż trafiają do TinyURL.
  4. Wyrywkowo porównaj zaimportowane slugi ze starym zachowaniem działającej nazwy hosta.
  5. Zmień rekord DNS. Od tej chwili nazwa hosta rozwiązuje się do Elido i podąża za nią każdy stary adres URL.

Trzymaj nazwę hosta w trybie samego DNS, bez proxy CDN z przodu, bo wystawienie certyfikatu może się nie udać za proxy. Szersza konfiguracja jest w domenach własnych dla krótkich linków i na stronie funkcji domeny własne.

Krok 5: zachowaj przekierowania 301

W Twojej własnej domenie adres URL się nie zmienia, więc nie ma czego łączyć mostem: ta sama ścieżka odpowiada teraz z Elido. Chronisz semantykę przekierowania. Kody statusu przekierowań są zdefiniowane w RFC 9110; przekierowanie stałe mówi przeglądarkom i wyszukiwarkom, że cel jest stabilny, a przełączenie długo żyjących linków na tymczasowe zmienia sposób ich buforowania i przypisywania zasług. Czytaj 301 vs 302, by poznać stronę SEO i buforowania.

Dla linków tinyurl.com nie ma 301, które mógłbyś dodać, bo przekierowanie należy do TinyURL. Najlepsze, co możesz zrobić, to zadbać, by miejsce docelowe za starym linkiem pozostało żywe, i zastąpić link wszędzie, gdzie masz dostęp. Poradnik migracji z Bitly pokazuje, jak działa most 301, gdy stara nazwa hosta należy do Ciebie.

Krok 6: zweryfikuj migrację

Migracja jest skończona, gdy każde umieszczenie linku wskazuje coś, co kontrolujesz. Użyj tej listy po kolei.

  1. Zamroź nowe linki w TinyURL. Od teraz twórz wszystko nowe w Elido.
  2. Zarchiwizuj pliki eksportu z TinyURL i wszelkie raporty, z datą.
  3. Przefiltruj zaimportowaną partię w Elido po tagu imported:tinyurl.
  4. Porównaj liczby. Zaimportowane plus pominięte plus nieudane powinny dać liczbę wierszy źródła.
  5. Napraw porażki. Każdy nieudany wiersz ma powód, zwykle nieprawidłowy URL lub zły znak w slugu.
  6. Przetestuj najważniejsze linki. Weź 50 najważniejszych linków i wywołaj każdy:
curl -s -o /dev/null -w "%{http_code} %{redirect_url}\n" https://go.yourbrand.com/spring-sale
  1. Porównaj miejsce docelowe ze źródłem dla tych 50. Dopasuj końcowy URL, łącznie z parametrami UTM.
  2. Przetestuj ponownie po zmianie DNS z sieci, która nie zbuforowała starego rekordu.
  3. Zaktualizuj umieszczenia tinyurl.com. Przeszukaj archiwa e-mail, biogramy w mediach społecznościowych, platformy reklamowe i druk pod kątem tinyurl.com i zastąp to, co się da.

Powierzchnie, do których nie dotrzesz, zaakceptuj jako stratę. Stare wydrukowane kody QR i zapomniane posty nadal będą wskazywać TinyURL, co dotyczy każdej migracji między skracaczami. Migracja z Bitly bez psucia linków ma bardziej rygorystyczny przebieg weryfikacji, jeśli go potrzebujesz.

Krok 7: zaplanuj rollback

Zachowaj TinyURL na miesiąc, jeśli możesz, i wypatruj maruderów, zanim zrezygnujesz z planu płatnego. Dopóki TinyURL nadal obsługuje linki Twojej brandowanej nazwy hosta, rollback to jedna zmiana DNS z powrotem na stary rekord, a niski TTL ją przyspiesza.

Wewnątrz Elido tag imported:tinyurl jest uchwytem do cofnięcia partii: przefiltruj, potem edytuj zbiorczo lub usuń. Jeśli przebieg importera umrze w połowie (wdrożenie lub awaria go zatrzymuje, a co pięć minut zamiatacz zmienia zadania bez postępu przez 30 minut na failed), nie ma zapisanego kursora, więc zadanie trzeba uruchomić od nowa. Ponowne uruchomienie jest bezpieczne przy suffix lub skip, ale suffix utworzy kopie -2 linków, które pierwszy przebieg już zapisał, więc przy ponownym uruchomieniu wybierz skip.

Krok 8: ustal oczekiwania wobec analityki

Historia kliknięć nie przechodzi żadną z dróg. Importer czyta tylko pola linków, a CSV nie ma kolumny kliknięć. Nowe kliknięcia liczą się od chwili, gdy link działa w Elido, czyli dla domeny własnej od zmiany DNS. Spodziewaj się krótkiego okna, w którym część odwiedzających wciąż trafia do TinyURL ze zbuforowanych rekordów.

Zostają też z tyłu styl i szablony kodów QR oraz wszystko, co utworzono bez konta. Jeśli śledzisz kampanie, przenieś teraz swoje konwencje UTM; parametry UTM wyjaśnione to dobre odświeżenie.

Co zyskujesz, przenosząc się

Wychodzisz z linkami na nazwie hosta, którą posiadasz, więc następna migracja, jeśli będzie, to zmiana DNS zamiast projektu. Dostajesz też analitykę, która startuje od przełączenia, i tag, który możesz odpytywać. Strona cennika wymienia plany, a Elido vs TinyURL ma bezpośrednie porównanie. Szerzej o tym, co jeszcze rozważyć, porównuje alternatywy dla TinyURL.

Powiązane na blogu

Najczęściej zadawane pytania

Czy mogę przekierować moje linki tinyurl.com na nowy krótki link?

Nie. Nie jesteś właścicielem tinyurl.com, więc tylko TinyURL może zmienić, dokąd prowadzi kod tinyurl.com/xxxx. W planie płatnym możesz edytować miejsce docelowe wewnątrz TinyURL, ale nie możesz skierować go na własne przekierowanie na poziomie domeny. Rozwiązaniem jest zastąpienie starego linku wszędzie tam, gdzie go opublikowałeś.

Jak wyeksportować moje linki z TinyURL?

Użyj API TinyURL z tokenem z płatnego konta. Specyfikacja OpenAPI TinyURL wypisuje linki przez GET /urls/available i GET /urls/archived, z opcjonalnymi filtrami from, to i search. Linki utworzone bez logowania nie należą do żadnego konta, więc nie ma czego wypisać.

Czy importer TinyURL w Elido działa dzisiaj?

Traktuj go jako niezweryfikowany. Worker odpytuje ścieżkę /aliases, której nie ma w specyfikacji OpenAPI TinyURL (sprawdzone 2026-10-02), więc dziś niezawodną drogą jest eksport przez /urls/available i wczytanie wyniku importem CSV lub zbiorczym w Elido. Poprawka importera jest planowana.

Czy tracę historię kliknięć, gdy odchodzę z TinyURL?

W praktyce tak. Elido importuje miejsce docelowe, alias, tytuł i tagi, ale nie zdarzenia kliknięć. Wyeksportuj z TinyURL potrzebne raporty, zanim zrezygnujesz, i spodziewaj się, że nowe kliknięcia w Elido zaczną być liczone od momentu przełączenia.

Czy mogę zachować moją domenę własną z TinyURL?

Tak, bo jesteś jej właścicielem. Dodaj nazwę hosta do Elido, zaimportuj na nią aliasy, a potem zmień rekord DNS u rejestratora. Stare linki w tej domenie nadal działają, bo nazwa hosta wskazuje teraz na Elido zamiast na TinyURL.

Czy mogę przenieść się z darmowego konta TinyURL?

Nie automatycznie. Wypisanie linków wymaga tokenu API, a TinyURL umieszcza edycję, analitykę, domeny własne i tworzenie zbiorcze w planach płatnych. W planie darmowym samodzielnie odbudowujesz listę miejsc docelowych i tworzysz je zbiorczo w Elido.

Wypróbuj Elido

Wklej URL, otrzymaj krótki link

Bez rejestracji. Link działa 30 dni. Zarejestruj się, aby zachować go na zawsze.

Bez rejestracji. Załóż darmowe konto i korzystaj z 50 linków miesięcznie.

Wypróbuj Elido

Skracarka URL hostowana w UE: własne domeny, głęboka analityka i otwarte API. Darmowy plan - bez karty kredytowej.

Tagi
migrate from tinyurl
tinyurl export
leave tinyurl
tinyurl custom domain migration
bulk import short links
tinyurl pro api

Czytaj dalej