Instruktaż/Tutorial Ściąganie z rapidshare bez konta premium (free)

hypnosiss

Moderator
Contributor
6 Lipiec 2008
327
31
28
31
Polska, Wrocław
QNAP
TS-x53D
Ethernet
1 GbE
ŚCIĄGANIE Z RAPIDSHARE BEZ KONTA PREMIUM

Stworzyłem prosty skrypt w pythonie lecz miał on kilka błędów.
Mój znajomy powiedział mi że jest w internecie podobny projekt napisany w bashu wykorzystujący głównie wgeta. Bardzo mnie to zaciekawiło, ponieważ w takiej sytuacji będzie można b. łatwo zaimpletować w Download Station.
Oczywiście info do QNAPa zostało wysłane przez Silasa, lecz zanim dostaniemy pełną decyzje przygotowałem Wam HOWTO wykorzystujący tejże skrypt lecz niestety obsługiwany przez SSH (lub telnet).


Krok po kroku INSTALACJA:

1. Instalujemy OPTWARE z QPKG(znajdującym się w Panelu Administracyjnym) oraz ustawiamy wartośc na Enabled(włączony).
2. Logujemy się na SSH.
3. Tworzymy plik.

Wpisuj kolejno:
Kod:
# cd ..
# cd /share/Qdownload

Tworzymy plik rapid.sh:
Kod:
# vi rapid.sh
Wciskamy klawisz "i"
Kopiujemy to:
Kod:
#!/bin/sh
#
# Download files from Rapidshare using free access (NOT premium accounts).
# Output files downloaded to standard output (one per line).
#
# Dependencies: sed, sleep, expr, wget.
#
# Web: http://code.google.com/p/megaupload-dl/wiki/RapidShare
# Contact: Arnau Sanchez <tokland@gmail.com>.
#
# License: GNU GPL v3.0: http://www.gnu.org/licenses/gpl-3.0-standalone.html
#
set -e

# Echo text to standard error.
#
debug() { echo "$@" >&2; }

# Get first line that matches a regular expression and extract string from it.
#
# $1: POSIX-regexp to filter (get only the first matching line).
# $2: POSIX-regexp to match (use parentheses) on the matched line.
#
parse() { sed -n "/$1/ s/^.*$2.*$/\1/p" | head -n1; }

# Check if a string ($2) matchs a regexp ($1)
#
match() { grep -q "$1" <<< "$2"; }

# Output a rapidshare file download URL given its rapidshare URL
#
# $1: A rapidshare URL
#
get_rapidshare_file_url() {
    URL=$1
    while true; do
        WAIT_URL=$(wget -O - "$URL" | parse '<form' 'action="\(.*\)"')
        test "$WAIT_URL" || { debug "can't get wait-page URL"; return 2; }
        DATA=$(wget -O - --post-data="dl.start=Free" "$WAIT_URL")
        test "$DATA" || { debug "can't get wait URL contents"; return 2; }
        LIMIT=$(echo "$DATA" | parse "try again" "\([[:digit:]]\+\) minutes")
        test -z "$LIMIT" && break
        debug "download limit reached: waiting $LIMIT minutes"
        sleep $((LIMIT*60))
    done
    FILE_URL=$(echo "$DATA" | parse "<form " 'action="\([^\"]*\)"') 
    SLEEP=$(echo "$DATA" | parse "^var c=" "c=\([[:digit:]]\+\);")
    test "$FILE_URL" || { debug "can't get file URL"; return 2; }
    debug "URL File: $FILE_URL" 
    test "$SLEEP" || { debug "can't get sleep time"; SLEEP=100; }
    debug "Waiting $SLEEP seconds" 
    sleep $(($SLEEP + 1))
    echo $FILE_URL    
}

# Guess is item is a rapidshare URL, a generic URL (try bulk download)
# or a file with links
#
process_item() {
    ITEM=$1
    BASEURL="\(http://\)\?\(www\.\)\?rapidshare.com"
    if match "^$BASEURL/" "$ITEM"; then
        # Rapidshare URL
        echo "$ITEM" 
    elif match "^\(http://\)" "$ITEM"; then
        # Non-rapidshare URL, extract RS links (highly fallible!) and download
        wget -O - "$ITEM" | tr -d '\r' | grep -o "$BASEURL/[^\"<>]\+" | uniq
    else 
        # Assume it's a file and read links (discard comments and empty lines)
        grep -v "^[[:space:]]*\(#\|$\)" -- "$ITEM"
    fi
}

# Don't run main code on testing
#
test "$TESTMODE" = "1" && return

# Main
#
if test $# -eq 0; then
    debug "usage: $(basename $0) URL|FILE [URL|FILE ...]"
    exit 1
fi

for ITEM in "$@"; do
    process_item "$ITEM" | while read URL; do
        debug "start download: $URL"
        FILE_URL=$(get_rapidshare_file_url "$URL") && 
            wget "$FILE_URL" && echo $(basename "$FILE_URL") ||
            debug "could not download: $URL" 
    done
done
i wklejmy do konsoli klikajac prawym przyciskiem myszy w konsole(a dokladniej w czarne tlo )
Wciskamy ESC oraz SHIFT + Z,Z.
Czekamy aż skończy wklejanie i potwierdzi że zapisano plik.

4. Nadajemy chmody.
Kod:
# chmod 755 rapid.sh

5. Instalujemy screen.
Kod:
# ipkg update
# ipkg instal screen


SKRYPT ZAINSTALOWANY !


Zawsze przed użyciem skryptu najlepiej wejść do folderu z nim. A zatem:
Kod:
# cd ..
# cd /share/Qdownload

~~ Linki do skryptu można dodawać na trzy sposoby ~~

- wskazując plik z linkami(oddzielonymi enterem). Przykład:
Kod:
# ./rapid.sh urls.txt

- podając adress strony www z linkami.
Kod:
# ./rapid.sh http://server.com/page-with-rapidshare-links.html

- podajac przy uruchamianiu skryptu linki odzielając spacją
Kod:
# ./rapid.sh rapidshare.com/link1 rapidshare.com/link2 rapidshare.com/link3 [...]

Odpalamyna screenie tak:
- Pierwszy raz(tzn jesli nie masz uruchomionego screena). Przykładowo:
Kod:
# cd /share/Qdownload
# screen -a
# ./rapid.sh [opcja]

- Jeśli będąc na screenie chcesz wyjść z konsoli i zostawić ściąganie na nocke wciskasz CTRL+A+D

- Jeśli bedziesz chciał wrócic do screena wpisujesz:
Kod:
# screen -r

- Jeżeli jesteś na screenie i chcesz otworzyć nowe "okienko" wciskasz CTRL+A+C

- Jeżeli jesteś na screenie i masz wiele otwartych okienek, możesz się przełączać między nimi skrótami CTRL+A+N lub CTRL+A+P.

- Jeżeli będąc na screenu z działającym skryptem i chcesz ten skrypt wyłączyć wciskasz CTRL+C.


Źródła: http://code.google.com/p/megaupload-dl/wiki/RapidShare
Skrypt wykonany przez: Arnau Sanchez. Na licencji GNU GPL v3.0 .