diff -Nru clipgrab-3.7.1~trusty1/ClipGrab.plist clipgrab-3.7.2~trusty1/ClipGrab.plist --- clipgrab-3.7.1~trusty1/ClipGrab.plist 2018-10-03 06:13:44.000000000 +0000 +++ clipgrab-3.7.2~trusty1/ClipGrab.plist 2018-11-16 22:22:10.000000000 +0000 @@ -17,6 +17,6 @@ NSHighResolutionCapable True CFBundleVersion - 3.7.1 + 3.7.2 diff -Nru clipgrab-3.7.1~trusty1/clipgrab.pro clipgrab-3.7.2~trusty1/clipgrab.pro --- clipgrab-3.7.1~trusty1/clipgrab.pro 2018-10-03 06:13:44.000000000 +0000 +++ clipgrab-3.7.2~trusty1/clipgrab.pro 2018-11-16 22:22:10.000000000 +0000 @@ -94,5 +94,5 @@ OBJECTIVE_SOURCES += savedialog_mac.mm LIBS += -framework AppKit -framework Foundation } -VERSION = 3.7.1 +VERSION = 3.7.2 DEFINES += CLIPGRAB_VERSION=$$VERSION diff -Nru clipgrab-3.7.1~trusty1/debian/changelog clipgrab-3.7.2~trusty1/debian/changelog --- clipgrab-3.7.1~trusty1/debian/changelog 2018-11-04 08:50:35.000000000 +0000 +++ clipgrab-3.7.2~trusty1/debian/changelog 2018-11-17 18:46:42.000000000 +0000 @@ -1,3 +1,9 @@ +clipgrab (3.7.2~trusty1) trusty; urgency=low + + * New Upstream Version + + -- Anton Asche Sat, 17 Nov 2018 18:41:52 +0100 + clipgrab (3.7.1~trusty1) trusty; urgency=low * New Upstream Version diff -Nru clipgrab-3.7.1~trusty1/debian/copyright clipgrab-3.7.2~trusty1/debian/copyright --- clipgrab-3.7.1~trusty1/debian/copyright 2018-11-04 08:49:55.000000000 +0000 +++ clipgrab-3.7.2~trusty1/debian/copyright 2018-11-17 18:46:20.000000000 +0000 @@ -1,6 +1,6 @@ This package was debianized by: - Anton Asche on Sun, 04 Nov 2018 09:42:06 +0100 + Anton Asche on Sat, 17 Nov 2018 18:41:52 +0100 It was downloaded from: diff -Nru clipgrab-3.7.1~trusty1/mainwindow.cpp clipgrab-3.7.2~trusty1/mainwindow.cpp --- clipgrab-3.7.1~trusty1/mainwindow.cpp 2018-10-03 06:13:44.000000000 +0000 +++ clipgrab-3.7.2~trusty1/mainwindow.cpp 2018-11-16 22:22:10.000000000 +0000 @@ -280,7 +280,7 @@ if (cg->settings.value("saveLastPath", true) == true) { QString targetDir = target; - targetDir.remove(targetDir.split("/", QString::SkipEmptyParts).last()).replace(QRegExp("/+"), "/"); + targetDir.remove(targetDir.split("/", QString::SkipEmptyParts).last()).replace(QRegExp("/+$"), "/"); ui.settingsSavedPath->setText(targetDir); } currentVideo->setTargetPath(target); diff -Nru clipgrab-3.7.1~trusty1/README clipgrab-3.7.2~trusty1/README --- clipgrab-3.7.1~trusty1/README 2018-10-03 06:13:44.000000000 +0000 +++ clipgrab-3.7.2~trusty1/README 2018-11-16 22:22:10.000000000 +0000 @@ -1,10 +1,21 @@ -Compiling ClipGrab is really easy. +#Compiling ClipGrab -You will only need the Qt4 developer libraries in order to compile the program. -In addition, ffmpeg (no developer libs necessary) needs to be installed. +Pre-compiled packages for ClipGrab are available on https://clipgrab.org +But compiling ClipGrab is really easy! + +##Prerequisites + +You need to install the Qt4 developer libraries in order to compile the program. +On Ubuntu and Debian-based system, you can install the necessary libraries like this: +sudo apt install libqt4-dev libqt4-bin libqtwebkit-dev + +Other Linux distributions might have slightly different package names. Packages for Windows and macOS can be downloaded here: https://download.qt.io/archive/qt/4.8/4.8.7/ + +In addition, ffmpeg (no developer libs necessary) needs to be installed. -To compile ClipGrab, simply execute +##Compiling +To compile ClipGrab, simply execute the following command: qmake clipgrab.pro && make -This will create an executable "clipgrab" that you can start via ./clipgrab. \ No newline at end of file +This will create an executable "clipgrab" that you can start via ./clipgrab. diff -Nru clipgrab-3.7.1~trusty1/video.cpp clipgrab-3.7.2~trusty1/video.cpp --- clipgrab-3.7.1~trusty1/video.cpp 2018-10-03 06:13:44.000000000 +0000 +++ clipgrab-3.7.2~trusty1/video.cpp 2018-11-16 22:22:10.000000000 +0000 @@ -334,7 +334,7 @@ if (title.size() > 0) { QStringList charsToBeRemoved; - charsToBeRemoved << "\\" << "/" << ":" << "*" << "?" << "<" << ">" << "|" << "'" << "\"" << "&quot;"; + charsToBeRemoved << "\\" << "/" << ":" << "*" << "?" << "<" << ">" << "|" << "'" << "\"" << "&quot;" << "~" << "^"; title = title.simplified(); if (title[0] == QChar('.')) diff -Nru clipgrab-3.7.1~trusty1/video_dailymotion.cpp clipgrab-3.7.2~trusty1/video_dailymotion.cpp --- clipgrab-3.7.1~trusty1/video_dailymotion.cpp 2018-10-03 06:13:44.000000000 +0000 +++ clipgrab-3.7.2~trusty1/video_dailymotion.cpp 2018-11-16 22:22:10.000000000 +0000 @@ -44,7 +44,7 @@ { _originalUrl = url; - for (uint i = 0; i < this->_urlRegExp.length(); i++) + for (int i = 0; i < this->_urlRegExp.length(); i++) { if (this->_urlRegExp.at(i).indexIn((url)) == -1) { diff -Nru clipgrab-3.7.1~trusty1/video_youtube.cpp clipgrab-3.7.2~trusty1/video_youtube.cpp --- clipgrab-3.7.1~trusty1/video_youtube.cpp 2018-10-03 06:13:44.000000000 +0000 +++ clipgrab-3.7.2~trusty1/video_youtube.cpp 2018-11-16 22:22:10.000000000 +0000 @@ -98,10 +98,10 @@ QString video_youtube::getUrlFromFmtLink(QString link) { - QRegExp urlExpression; - urlExpression = QRegExp("(http[s]?[^,]+)"); + QRegExp clen0 = QRegExp("clen=0"); + QRegExp urlExpression = QRegExp("(http[s]?[^,]+)"); - if (urlExpression.indexIn(link) > -1) + if (clen0.indexIn(link) == -1 && urlExpression.indexIn(link) > -1) { QString url = QUrl::fromEncoded(QUrl::fromEncoded(urlExpression.cap(1).toAscii()).toString().toAscii()).toString(); @@ -537,7 +537,6 @@ } //Extract links - bool videoIsFmt = true, audioIsFmt = true; QString videoLink = getFmtLink(qualityLinks, q.video); QString audioLink = !q.audio.isEmpty() ? getFmtLink(qualityLinks, q.audio) : ""; QStringList videoLinkSegments, audioLinkSegments; @@ -555,6 +554,13 @@ } } + if (!videoLink.isEmpty()) { + videoLink = getUrlFromFmtLink(videoLink); + } + if (!audioLink.isEmpty()) { + audioLink = getUrlFromFmtLink(audioLink); + } + //Try MPEG-Dash if Fmt link wasn’t found if (videoLink.isEmpty() || (!q.audio.isEmpty() && audioLink.isEmpty())) { @@ -571,14 +577,12 @@ videoLink = dashQualityLinks.at(j).at(0); videoLinkSegments = QStringList(dashQualityLinks.at(j)); videoLinkSegments.removeFirst(); - videoIsFmt = false; } else if (audioLink.isEmpty() && itagExpression.cap(1) == q.audio) { audioLink = dashQualityLinks.at(j).at(0); audioLinkSegments = QStringList(dashQualityLinks.at(j)); audioLinkSegments.removeFirst(); - audioIsFmt = false; } } @@ -595,7 +599,6 @@ audioLink = dashQualityLinks.at(j).at(0); audioLinkSegments = QStringList(dashQualityLinks.at(j)); audioLinkSegments.removeFirst(); - audioIsFmt = false; } } @@ -624,23 +627,19 @@ } } - if (videoIsFmt) - { - newQuality.videoUrl = getUrlFromFmtLink(videoLink); - } - else + newQuality.videoUrl = videoLink; + if (!videoLinkSegments.isEmpty()) { - newQuality.videoUrl = videoLink; newQuality.videoSegments = videoLinkSegments; } - if (!audioLink.isEmpty() && audioIsFmt) + if (!audioLink.isEmpty()) { - newQuality.audioUrl = getUrlFromFmtLink(audioLink); - } - else if (!audioLink.isEmpty()) { newQuality.audioUrl = audioLink; - newQuality.audioSegments = audioLinkSegments; + if (!audioLinkSegments.isEmpty()) + { + newQuality.audioSegments = audioLinkSegments; + } }