added readme
[fvlc.git] / fvlc
1 #!/bin/bash
2
3 PROCESS_COUNT="$(pgrep fvlc | wc -l)"
4 if [[ $PROCESS_COUNT > 2 ]]
5 then
6     exit 1
7 fi
8
9 SOURCE_DOMAIN="${1:?error: missing source argument}"
10 DESTINATION_FILE="${2:?error: missing destination argument}.flv"
11
12 # This loop is a hacky workaround
13 # When tcpdump is given the -c1 argument,
14 # it refuses to output the packet contents
15 # :-(
16
17 TEMPFILE=$(mktemp)
18 while [ -z "$URLHEAD" ]
19 do
20     LOCALHOST_IP=$(ifconfig wlan0 | grep 'inet ' | awk '{print $2}')
21     sudo tcpdump -vvvA -iwlan0 -s 500 \
22         "tcp port 80 and src $LOCALHOST_IP" >$TEMPFILE 2>/dev/null &
23     sleep 5s && kill $!
24     URLHEAD=$(grep 'GET /api/player' $TEMPFILE | awk '{print $2}')
25 done
26
27 rm $TEMPFILE
28
29 QUERYURL="$SOURCE_DOMAIN$URLHEAD"
30 VIDEO_URL=$(curl $QUERYURL)
31 VIDEO_URL=${VIDEO_URL%\&title=*}
32 VIDEO_URL=${VIDEO_URL#url=}
33
34 mplayer $VIDEO_URL -dumpstream -dumpfile "$DESTINATION_FILE" 2>&1 >/dev/null & disown
35 notify-send -i .config/film.png "Buffering video  "
36
37 vlc "$DESTINATION_FILE"