Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[BitChute] Added new Service #325

Closed
wants to merge 10 commits into from
Closed

[BitChute] Added new Service #325

wants to merge 10 commits into from

Conversation

yashx
Copy link

@yashx yashx commented May 7, 2020

  • I carefully read the contribution guidelines and agree to them.
  • I have tested the API against NewPipe.
  • I agree to create a pull request for NewPipe as soon as possible to make it compatible with the changed API.

NewPipe app crashes when setting up tab icons for new Services. I tested the app by commenting that line out.
Closes #320

@yashx
Copy link
Author

yashx commented May 7, 2020

Failing tests are from Soundcloud and MediaCCC.

Copy link
Contributor

@wb9688 wb9688 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I quickly looked at it, mostly at code style. I'll soon take a proper look at it.

@@ -49,7 +51,8 @@ private ServiceList() {
YouTube = new YoutubeService(0),
SoundCloud = new SoundcloudService(1),
MediaCCC = new MediaCCCService(2),
PeerTube = new PeertubeService(3)
PeerTube = new PeertubeService(3),
Bitchute = new BitchuteService(4)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Change that to 5, Bandcamp (i.e. #232) is going to be 4 already.

Comment on lines +25 to +26


Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why those 2 empty lines?

Comment on lines +38 to +39
Response response = getDownloader().get(BITCHUTE_LINK);
StringBuilder sb = new StringBuilder();
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Where possible, please make your variables final.

return headers;
}

public static String getSubscriberCountForChannelID(String channelID)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please don't make the D in ID a capital (i.e. change to getSubscriberCountForChannelId) to be consistent with other parts of NPE.

Comment on lines +80 to +81
System.out.println("Seeeeeeeeeeee");
System.out.println(channelID);
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Remove your debug prints

Comment on lines +115 to +116
return (new VideoCount(jsonObject.getInt("like_count"),
jsonObject.getInt("dislike_count"), jsonObject.getInt("view_count")));
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why the () around it?

return viewCount;
}
}
}
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

End your files with a newline. I'm going to add a code style checker that enforces it soon (similar to in NewPipe) and add an EditorConfig that should make your IDE do that by default.


@Override
public ListLinkHandlerFactory getPlaylistLHFactory() {
return null;
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Does BitChute actually not support playlists?

Comment on lines +95 to +96
public KioskExtractor createNewKiosk(StreamingService streamingService, String url
, String kioskId) throws ExtractionException {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Put the , at the previous line

Copy link
Contributor

@wb9688 wb9688 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Where are the tests?

@yashx
Copy link
Author

yashx commented May 7, 2020

@wb9688 I forgot to write them. 😅 I will make the changes you recommended and add the tests as soon as possible. This is the first time I am contributing to a big open source project, sorry for any inconveniences caused.

@wb9688
Copy link
Contributor

wb9688 commented May 7, 2020

@yashx: Don't rush, we're not sure yet whether we want to include BitChute.

cc @TobiGr

@yashx
Copy link
Author

yashx commented May 7, 2020

@wb9688 Oh okay. Please keep me posted.

@B0pol B0pol added enhancement new service Issues (feature request) or PR related to a new service labels May 9, 2020
@TobiGr
Copy link
Member

TobiGr commented May 11, 2020

I have been thinking a long time about how to deal with BitChute and similar platforms. I am excited every time someone wants to add a new service to NewPipe. This not only allows users to access yet another platform on mobile devices and drags attention to NewPipe from additional user groups, but can also result in increasing a platform's reach. This applies especially to smaller platforms. And with the latter I see a serious problem here. BitChute is a platform for people who can spread right-wing hate, racism and xenophobia, populism and conspiracy theories unhinderedly.

Unlike platforms like YouTube or PeerTube, BitChute cannot be used without being immediately confronted with conspiracy theories and lies, white supremacy ideologies, racist ideas, extremism or blunt populism. On BitChute, content creators who have long since been expelled from other platforms due to multiple violations of their guidelines find a place to share their ideologies. We do not know whether it's initially been the platform's intention to host such content, but they certainly permit it, as they don't take action against their users' behavior. Violation of foundational rights cannot be justified by some crude imagination of freedom, that argument doesn't hold. Quoting the German constitution, Art. 2 (1): "Every person shall have the right to free development of his personality insofar as he does not violate the rights of others [...].". The contents violate other people's rights quite obviously and repeatedly. Such a platform shall never receive any attention through our app.

NewPipe stands for an open, welcoming, tolerant, friendly and anti-extremist community. For all these reasons, the maintainers have decided that we clearly must reject your pull request. We hope you understand this decision.

@yashx
Copy link
Author

yashx commented May 11, 2020

Though I can't deny such content exists on this platform, the reason I wanted Bitchute to be included in NewPipe was that unlike YouTube they don't censor creators or prefer mainstream creators over individuals by shadow banning them. They act as platform and not a publisher.

The fact that this platform in new and as a result doesn't have a robust system as YouTube to monitor the content on their website makes it so that some questionable content makes way on their site.

But I understand where you guys are coming from, maybe in future if they are able to meet your standards we might see Bitchute on NewPipe.

@ghost
Copy link

ghost commented May 11, 2020

@TobiGr >le ebil conspiracy nhatzee strawman
Well I guess newpipe is dead, heading back to the official youtube app.

@Stypox
Copy link
Member

Stypox commented May 11, 2020

It turns out that not some of the videos are conspiracy theories or fake news, but most of them are (i.e. more than half of the ones I saw), and they are even advertised on the main page

@fullmetal1
Copy link

It's pretty disgusting that a supposedly free and open project would reject additional functionality on the basis that it provides access to a platform with some content the dev team personally finds objectionable. Most of the people posting content on bitchute previously posted on YouTube. Was this content not objectionable when it was on YouTube? Did it just become objectionable when it was centralized on one platform? With every added month YouTube bans more accounts for more dubious reasoning. Is it the opinion of the newpipe team that YouTube moderators should decide what content I am entitled to view? If bitchute chose to switch to a peer tube api, would the newpipe team work to blacklist it, because it provides access to content they personally find objectionable? What if a large number of peer tube instances themselves became home to this objectionable content? Would the peer tube functionality in its entirety be removed? What is the threshold for objectionable content before it is okay in the minds of the newpipe team to scuttle functionality to prevent access? You claim to support a 'open, welcoming, tolerant, friendly and anti-extremist' and yet you reject pull requests that add the ability to view more content openly. That is not wopen, welcoming, or tolerant, and I would argue, not very friendly. There are any number of extremists on YouTube and peer tube, and yet you do nothing to stop them. It seems to me, then, that your moral objections are lacking in substance.

I hope for your sake that free and open source software is never considered extremist or ban worthy on YouTube, or else you might have to consider the consequences of your actions.

@Stypox
Copy link
Member

Stypox commented Jul 24, 2020

@fullmetal1 make your own fork if you really wish to, nobody is stopping you from doing that. But it would be a huge responsibility for NewPipe's team to add a new officially supported service containing mostly conspiracy theories on an app that is used by children and growing people. Adding an entry in the drawer menu for bitchute would advertise the platform, since people peeking through NewPipe's features would open it and look at its videos. It is very different from supporting any peertube instance: even though there are instances with questionable content, it is up to the user to decide to add one he already knows about: we are not putting it in front of him.

YouTube moderators should decide what content I am entitled to view?

Obviously not, but we do not want to officially provide any (even indirect) support to conspiracy theorists. As said above, if somebody wants to fork NewPipe and create a new version with BitChute support he is free to do it (the licence allows it), but we do not want to officially support a platform mainly devoted to spreading conspiracies.

If bitchute chose to switch to a peer tube api, would the newpipe team work to blacklist it, because it provides access to content they personally find objectionable?

No, we wouldn't, as it would imply the user already knows about bitchute as to add it manually to the peertube instances. Also, I know there is objectionable content on youtube, too, but again it's up to the user to subscribe to those rare channels (rare, i.e. difficult to find at random). On the other hand, BitChute trending page and probably every search for any keyword contain a handful of objectionable results, so it would not be up to the user to decide whether to see that content or not.

What if a large number of peer tube instances themselves became home to this objectionable content? Would the peer tube functionality in its entirety be removed?

Again, no, since it would be up to the user to look up objectionable peertube instances on the web, we would not be promoting one. If the currently default instance (i.e. Framatube) became questionable, we would change it.

There are any number of extremists on YouTube and peer tube, and yet you do nothing to stop them.

We shall not decide what people should watch, or make it more difficult to watch something based on our thoughts (i.e. by blacklisting it). We are not entitled to "stop them". But we do not want to provide direct support to extremists (by allowing them to gain more popularity and making their videos more accessible), and adding BitChute as an officially supported service would mean exactly that.

@fullmetal1
Copy link

If I forked every piece of FOSS software that made decisions based on political expedience, I'd be spending the rest of eternity merging changes from yesterday.

it would be a huge responsibility for NewPipe's team to add a new officially supported service containing mostly conspiracy theories

Why do you accept responsibility for the videos available on platforms visible on your app? As far as I can tell, the trending tab in NewPipe only ever shows youtube recommended content, so even if the user chooses bitchute they would still be required to actually search for the content they're looking for, so I don't understand what the concern of 'direct support' is. Further, from what I understand from yashx, the videos grabbed from bitchute are all marked as age restricted, so the paternalist argument that you're protecting the soft skulled children from extremists and conspiracy theorists doesn't quite add up.

I'm happy to hear you say that you won't be adding blacklists for peertube instances.

We shall not decide what people should watch, or make it more difficult to watch something based on our thoughts

But we do not want to provide direct support to extremists (by allowing them to gain more popularity and making their videos more accessible)

These statements are mutually exclusive. If you believe that some amount of content on BitChute is objectionable enough that BitChute shouldn't be viewable on your app, then you are making the moral argument that people should not be able to watch BitChute videos on your app, which means that your first statement quoted above is false, in that you do decide what people should watch. If you truly believe that people should be able to watch whatever they want, including all content on BitChute, objectionable or not, then you would have no reason not to pull the change, and so your second statement would be false. Can you help to rectify these contrary statements?

@fullmetal1
Copy link

I agree that p2p federated interactions are probably the way forward, but I think that's another conversation altogether,and not really related to the stated reasons for rejecting the merge.

@ghost
Copy link

ghost commented Aug 22, 2020

This really seems weird in my opinion, adding support for the platform should have nothing to do with the content it allows to host. Check out youtube-dl - they support virtually every video hosting platform out there, INCLUDING BitChute, and they don't care about the content.

@MagnificentPako
Copy link

This really seems weird in my opinion, adding support for the platform should have nothing to do with the content it allows to host. Check out youtube-dl - they support virtually every video hosting platform out there, INCLUDING BitChute, and they don't care about the content.

You're missing something there. youtube-dl is a tool you use to download specific content. It doesn't allow you to discover new material. In contrast to that NewPipe would promote BitChute as a first-class citizen of their app and show you the current trending videos, and anything else from their platform as soon as you selected it in the menu. I personally just went to BitChute's main page and could count at my hand the amount of videos that weren't obviously conspiracy theories or otherwise extremeist material. I do agree with the NewPipe team that they do have more responsibility than e.g. the yotubue-dl team because NewPipe is an alternative client for YT (and other platforms) instead of a tool to selectively access media. There's a stark contrast between giving you the ability to consciously access specific content you selected yourself and being exposed to an unfiltered stream of stuff.

@fullmetal1
Copy link

Okay now try again with age restricted content turned off, as is the default in newpipe.

@Pentaphon
Copy link

Pentaphon commented Oct 5, 2020

NewPipe stands for an open, welcoming, tolerant, friendly and anti-extremist community.

Youtube has more "extremist" videos than another platform combined. The only difference is that it is heavily moderated these days. There is nothing "open", "welcoming", "tolerant", or "friendly" about having Newpipe explicitly ban other competing video platforms.

There is a way to add these services to Newpipe without making them default. Allow users to add the URL themselves to enable Newpipe to browse those sites. That way, only advanced users that know how to add support for those sites can do so, while the average user just uses Newpipe for Youtube.

There's a stark contrast between giving you the ability to consciously access specific content you selected yourself and being exposed to an unfiltered stream of stuff.

You can only expose yourself to an "unfiltered stream of stuff" if you want to. The devs could easily add support for Youtube-competitors and then allow advanced users to manually add support for the sites they want to browse.

@ah1102

This comment has been minimized.

@PopeNobody

This comment has been minimized.

@ghost
Copy link

ghost commented Mar 15, 2021

Anyone have a compiled version of this app with enough freedom to extract videos from Bitchute and BraveNewPipe? While I appreciate the good intentions under which this issue was closed it's not up to a coder to make a political decision—that would be absurd. And with so much anti-establishment content Re: COVID being purged from YouTube, whether nefariously in support of pharma or due to bogus DCMA requests, it's becoming more and more important we seek out content like the 1996 Kary Mullis interview with Gary Null—content which is seeing rotting links or an ought right ban on PooTube.

I like NewPipe. And I look forward to using its forks if it won't be easy for me to download and preserve content wherever it may be.

I'm with @PopeNobody on this matter. It's up to people individually to sort out truth from falsehood and good from bad. As we know all technology can be used for both good and evil.

@TeamNewPipe TeamNewPipe locked as resolved and limited conversation to collaborators Mar 15, 2021
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
enhancement new service Issues (feature request) or PR related to a new service
Projects
None yet
Development

Successfully merging this pull request may close these issues.

[Service request] Bitchute
10 participants